1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
/**
* 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
|