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 9typedef struct tag_IDFHEADER { 10 DWORD cbStruct; 11 DWORD dwVersion; 12 DWORD dwCreator; 13 DWORD cbInstID; 14 BYTE abInstID[1]; 15} IDFHEADER,*PIDFHEADER,*LPIDFHEADER; 16 17typedef 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 29typedef 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 41typedef 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 51typedef struct tag_IDFCHANNELINFO { 52 DWORD cbStruct; 53 DWORD dwChannel; 54 DWORD cbInitData; 55 BYTE abData[]; 56} IDFCHANNELINFO,*PIDFCHANNELINFO,*LPIDFCHANNELINFO; 57 58typedef struct tag_IDFPATCHMAPHDR { 59 DWORD cbStruct; 60 BYTE abPatchMap[128]; 61} IDFPATCHMAPHDR,*PIDFPATCHMAPHDR,*LPIDFPATCHMAPHDR; 62 63typedef struct tag_IDFKEYMAPHDR { 64 DWORD cbStruct; 65 DWORD cNumKeyMaps; 66 DWORD cbKeyMap; 67} IDFKEYMAPHDR,*PIDFKEYMAPHDR,*LPIDFKEYMAPHDR; 68 69typedef struct tag_IDFKEYMAP { 70 DWORD cbStruct; 71 BYTE abKeyMap[128]; 72} IDFKEYMAP,*PIDFKEYMAP,*LPIDFKEYMAP; 73 74#endif 75