home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / dmusbuff.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  2KB  |  44 lines

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