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 9 typedef struct tag_IDFHEADER { 10 DWORD cbStruct; 11 DWORD dwVersion; 12 DWORD dwCreator; 13 DWORD cbInstID; 14 BYTE abInstID[1]; 15 } IDFHEADER,*PIDFHEADER,*LPIDFHEADER; 16 17 typedef struct tag_IDFINSTINFO { 18 DWORD cbStruct; 19 DWORD dwManufactID; 20 DWORD dwProductID; 21 DWORD dwRevision; 22 DWORD cbManufactASCII; 23 DWORD cbManufactUNICODE; 24 DWORD cbProductASCII; 25 DWORD cbProductUNICODE; 26 BYTE abData[1]; 27 } IDFINSTINFO,*LPIDFINSTINFO; 28 29 typedef struct tag_IDFINSTCAPS { 30 DWORD cbStruct; 31 DWORD fdwFlags; 32 DWORD dwBasicChannel; 33 DWORD cNumChannels; 34 DWORD cInstrumentPolyphony; 35 DWORD cChannelPolyphony; 36 } IDFINSTCAPS,*PIDFINSTCAPS,*LPIDFINSTCAPS; 37 38 #define IDFINSTCAPS_F_GENERAL_MIDI 0x00000001 39 #define IDFINSTCAPS_F_SYSTEMEXCLUSIVE 0x00000002 40 41 typedef struct tag_IDFCHANNELHDR { 42 DWORD cbStruct; 43 DWORD dwGeneralMask; 44 DWORD dwDrumMask; 45 DWORD dwReserved; 46 DWORD fdwFlags; 47 } IDFCHANNELHDR,*PIDFCHANNELHDR,*LPIDFCHANNELHDR; 48 49 #define IDFCHANNELHDR_F_GENERAL_MIDI 0x00000001 50 51 typedef struct tag_IDFCHANNELINFO { 52 DWORD cbStruct; 53 DWORD dwChannel; 54 DWORD cbInitData; 55 BYTE abData[]; 56 } IDFCHANNELINFO,*PIDFCHANNELINFO,*LPIDFCHANNELINFO; 57 58 typedef struct tag_IDFPATCHMAPHDR { 59 DWORD cbStruct; 60 BYTE abPatchMap[128]; 61 } IDFPATCHMAPHDR,*PIDFPATCHMAPHDR,*LPIDFPATCHMAPHDR; 62 63 typedef struct tag_IDFKEYMAPHDR { 64 DWORD cbStruct; 65 DWORD cNumKeyMaps; 66 DWORD cbKeyMap; 67 } IDFKEYMAPHDR,*PIDFKEYMAPHDR,*LPIDFKEYMAPHDR; 68 69 typedef struct tag_IDFKEYMAP { 70 DWORD cbStruct; 71 BYTE abKeyMap[128]; 72 } IDFKEYMAP,*PIDFKEYMAP,*LPIDFKEYMAP; 73 74 #endif 75