/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #ifndef __IDF_H__ #define __IDF_H__ typedef struct tag_IDFHEADER { DWORD cbStruct; DWORD dwVersion; DWORD dwCreator; DWORD cbInstID; BYTE abInstID[1]; } IDFHEADER,*PIDFHEADER,*LPIDFHEADER; typedef struct tag_IDFINSTINFO { DWORD cbStruct; DWORD dwManufactID; DWORD dwProductID; DWORD dwRevision; DWORD cbManufactASCII; DWORD cbManufactUNICODE; DWORD cbProductASCII; DWORD cbProductUNICODE; BYTE abData[1]; } IDFINSTINFO,*LPIDFINSTINFO; typedef struct tag_IDFINSTCAPS { DWORD cbStruct; DWORD fdwFlags; DWORD dwBasicChannel; DWORD cNumChannels; DWORD cInstrumentPolyphony; DWORD cChannelPolyphony; } IDFINSTCAPS,*PIDFINSTCAPS,*LPIDFINSTCAPS; #define IDFINSTCAPS_F_GENERAL_MIDI 0x00000001 #define IDFINSTCAPS_F_SYSTEMEXCLUSIVE 0x00000002 typedef struct tag_IDFCHANNELHDR { DWORD cbStruct; DWORD dwGeneralMask; DWORD dwDrumMask; DWORD dwReserved; DWORD fdwFlags; } IDFCHANNELHDR,*PIDFCHANNELHDR,*LPIDFCHANNELHDR; #define IDFCHANNELHDR_F_GENERAL_MIDI 0x00000001 typedef struct tag_IDFCHANNELINFO { DWORD cbStruct; DWORD dwChannel; DWORD cbInitData; BYTE abData[]; } IDFCHANNELINFO,*PIDFCHANNELINFO,*LPIDFCHANNELINFO; typedef struct tag_IDFPATCHMAPHDR { DWORD cbStruct; BYTE abPatchMap[128]; } IDFPATCHMAPHDR,*PIDFPATCHMAPHDR,*LPIDFPATCHMAPHDR; typedef struct tag_IDFKEYMAPHDR { DWORD cbStruct; DWORD cNumKeyMaps; DWORD cbKeyMap; } IDFKEYMAPHDR,*PIDFKEYMAPHDR,*LPIDFKEYMAPHDR; typedef struct tag_IDFKEYMAP { DWORD cbStruct; BYTE abKeyMap[128]; } IDFKEYMAP,*PIDFKEYMAP,*LPIDFKEYMAP; #endif