0
|
1 /***************************************************************************
|
|
2 * *
|
|
3 * DMusBuff.h -- This module defines the buffer format for DirectMusic *
|
|
4 * Shared file between user mode and kernel mode components *
|
|
5 * *
|
|
6 * Copyright (c) 1998, Microsoft Corp. All rights reserved. *
|
|
7 * *
|
|
8 ***************************************************************************/
|
|
9
|
|
10 #ifndef _DMusBuff_
|
|
11 #define _DMusBuff_
|
|
12
|
|
13 /* Format of DirectMusic events in a buffer
|
|
14 *
|
|
15 * A buffer contains 1 or more events, each with the following header.
|
|
16 * Immediately following the header is the event data. The header+data
|
|
17 * size is rounded to the nearest quadword (8 bytes).
|
|
18 */
|
|
19
|
|
20 #include <pshpack4.h> /* Do not pad at end - that's where the data is */
|
|
21 typedef struct _DMUS_EVENTHEADER *LPDMUS_EVENTHEADER;
|
|
22 typedef struct _DMUS_EVENTHEADER
|
|
23 {
|
|
24 DWORD cbEvent; /* Unrounded bytes in event */
|
|
25 DWORD dwChannelGroup; /* Channel group of event */
|
|
26 REFERENCE_TIME rtDelta; /* Delta from start time of entire buffer */
|
|
27 DWORD dwFlags; /* Flags DMUS_EVENT_xxx */
|
|
28 } DMUS_EVENTHEADER;
|
|
29 #include <poppack.h>
|
|
30
|
|
31 #define DMUS_EVENT_STRUCTURED 0x00000001 /* Unstructured data (SysEx, etc.) */
|
|
32
|
|
33 /* The number of bytes to allocate for an event with 'cb' data bytes.
|
|
34 */
|
|
35 #define QWORD_ALIGN(x) (((x) + 7) & ~7)
|
|
36 #define DMUS_EVENT_SIZE(cb) QWORD_ALIGN(sizeof(DMUS_EVENTHEADER) + cb)
|
|
37
|
|
38
|
|
39 #endif /* _DMusBuff_ */
|
|
40
|
|
41
|