idf.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef __IDF_H__
  7. #define __IDF_H__
  8. typedef struct tag_IDFHEADER {
  9. DWORD cbStruct;
  10. DWORD dwVersion;
  11. DWORD dwCreator;
  12. DWORD cbInstID;
  13. BYTE abInstID[1];
  14. } IDFHEADER,*PIDFHEADER,*LPIDFHEADER;
  15. typedef struct tag_IDFINSTINFO {
  16. DWORD cbStruct;
  17. DWORD dwManufactID;
  18. DWORD dwProductID;
  19. DWORD dwRevision;
  20. DWORD cbManufactASCII;
  21. DWORD cbManufactUNICODE;
  22. DWORD cbProductASCII;
  23. DWORD cbProductUNICODE;
  24. BYTE abData[1];
  25. } IDFINSTINFO,*LPIDFINSTINFO;
  26. typedef struct tag_IDFINSTCAPS {
  27. DWORD cbStruct;
  28. DWORD fdwFlags;
  29. DWORD dwBasicChannel;
  30. DWORD cNumChannels;
  31. DWORD cInstrumentPolyphony;
  32. DWORD cChannelPolyphony;
  33. } IDFINSTCAPS,*PIDFINSTCAPS,*LPIDFINSTCAPS;
  34. #define IDFINSTCAPS_F_GENERAL_MIDI 0x00000001
  35. #define IDFINSTCAPS_F_SYSTEMEXCLUSIVE 0x00000002
  36. typedef struct tag_IDFCHANNELHDR {
  37. DWORD cbStruct;
  38. DWORD dwGeneralMask;
  39. DWORD dwDrumMask;
  40. DWORD dwReserved;
  41. DWORD fdwFlags;
  42. } IDFCHANNELHDR,*PIDFCHANNELHDR,*LPIDFCHANNELHDR;
  43. #define IDFCHANNELHDR_F_GENERAL_MIDI 0x00000001
  44. typedef struct tag_IDFCHANNELINFO {
  45. DWORD cbStruct;
  46. DWORD dwChannel;
  47. DWORD cbInitData;
  48. BYTE abData[];
  49. } IDFCHANNELINFO,*PIDFCHANNELINFO,*LPIDFCHANNELINFO;
  50. typedef struct tag_IDFPATCHMAPHDR {
  51. DWORD cbStruct;
  52. BYTE abPatchMap[128];
  53. } IDFPATCHMAPHDR,*PIDFPATCHMAPHDR,*LPIDFPATCHMAPHDR;
  54. typedef struct tag_IDFKEYMAPHDR {
  55. DWORD cbStruct;
  56. DWORD cNumKeyMaps;
  57. DWORD cbKeyMap;
  58. } IDFKEYMAPHDR,*PIDFKEYMAPHDR,*LPIDFKEYMAPHDR;
  59. typedef struct tag_IDFKEYMAP {
  60. DWORD cbStruct;
  61. BYTE abKeyMap[128];
  62. } IDFKEYMAP,*PIDFKEYMAP,*LPIDFKEYMAP;
  63. #endif