Home | History | Annotate | Download | only in include
      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