dmusbuff.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:2k
源码类别:

模拟服务器

开发平台:

C/C++

  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. #ifndef _DMusBuff_
  10. #define _DMusBuff_
  11. /* Format of DirectMusic events in a buffer
  12.  *
  13.  * A buffer contains 1 or more events, each with the following header.
  14.  * Immediately following the header is the event data. The header+data
  15.  * size is rounded to the nearest quadword (8 bytes).
  16.  */
  17.  
  18. #include <pshpack4.h>                       /* Do not pad at end - that's where the data is */ 
  19. typedef struct _DMUS_EVENTHEADER *LPDMUS_EVENTHEADER;
  20. typedef struct _DMUS_EVENTHEADER
  21. {
  22.     DWORD           cbEvent;                /* Unrounded bytes in event */
  23.     DWORD           dwChannelGroup;         /* Channel group of event */
  24.     REFERENCE_TIME  rtDelta;                /* Delta from start time of entire buffer */
  25.     DWORD           dwFlags;                /* Flags DMUS_EVENT_xxx */
  26. } DMUS_EVENTHEADER;
  27. #include <poppack.h>
  28. #define DMUS_EVENT_STRUCTURED   0x00000001  /* Unstructured data (SysEx, etc.) */
  29. /* The number of bytes to allocate for an event with 'cb' data bytes.
  30.  */ 
  31. #define QWORD_ALIGN(x) (((x) + 7) & ~7)
  32. #define DMUS_EVENT_SIZE(cb) QWORD_ALIGN(sizeof(DMUS_EVENTHEADER) + cb)
  33. #endif /* _DMusBuff_ */