Mercurial > audlegacy-plugins
comparison src/modplug/it_defs.h @ 136:6b5a52635b3b trunk
[svn] - like with so many other things, modplug is now maintained by us.
author | nenolod |
---|---|
date | Sun, 29 Oct 2006 01:04:52 -0700 |
parents | |
children | 032053ca08ab 3673c7ec4ea2 |
comparison
equal
deleted
inserted
replaced
135:33d24bd94ccc | 136:6b5a52635b3b |
---|---|
1 #ifndef _ITDEFS_H_ | |
2 #define _ITDEFS_H_ | |
3 | |
4 #pragma pack(1) | |
5 | |
6 typedef struct tagITFILEHEADER | |
7 { | |
8 DWORD id; // 0x4D504D49 | |
9 CHAR songname[26]; | |
10 WORD reserved1; // 0x1004 | |
11 WORD ordnum; | |
12 WORD insnum; | |
13 WORD smpnum; | |
14 WORD patnum; | |
15 WORD cwtv; | |
16 WORD cmwt; | |
17 WORD flags; | |
18 WORD special; | |
19 BYTE globalvol; | |
20 BYTE mv; | |
21 BYTE speed; | |
22 BYTE tempo; | |
23 BYTE sep; | |
24 BYTE zero; | |
25 WORD msglength; | |
26 DWORD msgoffset; | |
27 DWORD reserved2; | |
28 BYTE chnpan[64]; | |
29 BYTE chnvol[64]; | |
30 } ITFILEHEADER; | |
31 | |
32 | |
33 typedef struct tagITENVELOPE | |
34 { | |
35 BYTE flags; | |
36 BYTE num; | |
37 BYTE lpb; | |
38 BYTE lpe; | |
39 BYTE slb; | |
40 BYTE sle; | |
41 BYTE data[25*3]; | |
42 BYTE reserved; | |
43 } ITENVELOPE; | |
44 | |
45 // Old Impulse Instrument Format (cmwt < 0x200) | |
46 typedef struct tagITOLDINSTRUMENT | |
47 { | |
48 DWORD id; // IMPI = 0x49504D49 | |
49 CHAR filename[12]; // DOS file name | |
50 BYTE zero; | |
51 BYTE flags; | |
52 BYTE vls; | |
53 BYTE vle; | |
54 BYTE sls; | |
55 BYTE sle; | |
56 WORD reserved1; | |
57 WORD fadeout; | |
58 BYTE nna; | |
59 BYTE dnc; | |
60 WORD trkvers; | |
61 BYTE nos; | |
62 BYTE reserved2; | |
63 CHAR name[26]; | |
64 WORD reserved3[3]; | |
65 BYTE keyboard[240]; | |
66 BYTE volenv[200]; | |
67 BYTE nodes[50]; | |
68 } ITOLDINSTRUMENT; | |
69 | |
70 | |
71 // Impulse Instrument Format | |
72 typedef struct tagITINSTRUMENT | |
73 { | |
74 DWORD id; | |
75 CHAR filename[12]; | |
76 BYTE zero; | |
77 BYTE nna; | |
78 BYTE dct; | |
79 BYTE dca; | |
80 WORD fadeout; | |
81 signed char pps; | |
82 BYTE ppc; | |
83 BYTE gbv; | |
84 BYTE dfp; | |
85 BYTE rv; | |
86 BYTE rp; | |
87 WORD trkvers; | |
88 BYTE nos; | |
89 BYTE reserved1; | |
90 CHAR name[26]; | |
91 BYTE ifc; | |
92 BYTE ifr; | |
93 BYTE mch; | |
94 BYTE mpr; | |
95 WORD mbank; | |
96 BYTE keyboard[240]; | |
97 ITENVELOPE volenv; | |
98 ITENVELOPE panenv; | |
99 ITENVELOPE pitchenv; | |
100 BYTE dummy[4]; // was 7, but IT v2.17 saves 554 bytes | |
101 } ITINSTRUMENT; | |
102 | |
103 | |
104 // IT Sample Format | |
105 typedef struct ITSAMPLESTRUCT | |
106 { | |
107 DWORD id; // 0x53504D49 | |
108 CHAR filename[12]; | |
109 BYTE zero; | |
110 BYTE gvl; | |
111 BYTE flags; | |
112 BYTE vol; | |
113 CHAR name[26]; | |
114 BYTE cvt; | |
115 BYTE dfp; | |
116 DWORD length; | |
117 DWORD loopbegin; | |
118 DWORD loopend; | |
119 DWORD C5Speed; | |
120 DWORD susloopbegin; | |
121 DWORD susloopend; | |
122 DWORD samplepointer; | |
123 BYTE vis; | |
124 BYTE vid; | |
125 BYTE vir; | |
126 BYTE vit; | |
127 } ITSAMPLESTRUCT; | |
128 | |
129 #pragma pack() | |
130 | |
131 extern BYTE autovibit2xm[8]; | |
132 extern BYTE autovibxm2it[8]; | |
133 | |
134 #endif |