You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.7 KiB
41 lines
1.7 KiB
/***************************************************************************
|
|
* *
|
|
* DMusBuff.h -- This module defines the buffer format for DirectMusic *
|
|
* Shared file between user mode and kernel mode components *
|
|
* *
|
|
* Copyright (c) 1998, Microsoft Corp. All rights reserved. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#ifndef _DMusBuff_
|
|
#define _DMusBuff_
|
|
|
|
/* Format of DirectMusic events in a buffer
|
|
*
|
|
* A buffer contains 1 or more events, each with the following header.
|
|
* Immediately following the header is the event data. The header+data
|
|
* size is rounded to the nearest quadword (8 bytes).
|
|
*/
|
|
|
|
#include <pshpack4.h> /* Do not pad at end - that's where the data is */
|
|
typedef struct _DMUS_EVENTHEADER *LPDMUS_EVENTHEADER;
|
|
typedef struct _DMUS_EVENTHEADER
|
|
{
|
|
DWORD cbEvent; /* Unrounded bytes in event */
|
|
DWORD dwChannelGroup; /* Channel group of event */
|
|
REFERENCE_TIME rtDelta; /* Delta from start time of entire buffer */
|
|
DWORD dwFlags; /* Flags DMUS_EVENT_xxx */
|
|
} DMUS_EVENTHEADER;
|
|
#include <poppack.h>
|
|
|
|
#define DMUS_EVENT_STRUCTURED 0x00000001 /* Unstructured data (SysEx, etc.) */
|
|
|
|
/* The number of bytes to allocate for an event with 'cb' data bytes.
|
|
*/
|
|
#define QWORD_ALIGN(x) (((x) + 7) & ~7)
|
|
#define DMUS_EVENT_SIZE(cb) QWORD_ALIGN(sizeof(DMUS_EVENTHEADER) + cb)
|
|
|
|
|
|
#endif /* _DMusBuff_ */
|
|
|
|
|