summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/modplug/it_defs.h
authorllornkcor <llornkcor>2002-07-20 22:07:31 (UTC)
committer llornkcor <llornkcor>2002-07-20 22:07:31 (UTC)
commit2342d48be31847e7ead9d1cc682452e8f0122351 (patch) (unidiff)
tree8329bb94e9d429c905a0ef6b881cf1c0f775bf14 /core/multimedia/opieplayer/modplug/it_defs.h
parent0f24c1fb86d3bb58d8696358b824c0e01752b10d (diff)
downloadopie-2342d48be31847e7ead9d1cc682452e8f0122351.zip
opie-2342d48be31847e7ead9d1cc682452e8f0122351.tar.gz
opie-2342d48be31847e7ead9d1cc682452e8f0122351.tar.bz2
initial commit of modplugin
Diffstat (limited to 'core/multimedia/opieplayer/modplug/it_defs.h') (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/modplug/it_defs.h136
1 files changed, 136 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/modplug/it_defs.h b/core/multimedia/opieplayer/modplug/it_defs.h
new file mode 100644
index 0000000..1eaf086
--- a/dev/null
+++ b/core/multimedia/opieplayer/modplug/it_defs.h
@@ -0,0 +1,136 @@
1#ifndef _ITDEFS_H_
2#define _ITDEFS_H_
3
4#include "stdafx.h"
5
6#pragma pack(1)
7
8typedef struct tagITFILEHEADER
9{
10 DWORD id; // 0x4D504D49
11 CHAR songname[26];
12 WORD reserved1; // 0x1004
13 WORD ordnum;
14 WORD insnum;
15 WORD smpnum;
16 WORD patnum;
17 WORD cwtv;
18 WORD cmwt;
19 WORD flags;
20 WORD special;
21 BYTE globalvol;
22 BYTE mv;
23 BYTE speed;
24 BYTE tempo;
25 BYTE sep;
26 BYTE zero;
27 WORD msglength;
28 DWORD msgoffset;
29 DWORD reserved2;
30 BYTE chnpan[64];
31 BYTE chnvol[64];
32} Q_PACKED ITFILEHEADER;
33
34
35typedef struct tagITENVELOPE
36{
37 BYTE flags;
38 BYTE num;
39 BYTE lpb;
40 BYTE lpe;
41 BYTE slb;
42 BYTE sle;
43 BYTE data[25*3];
44 BYTE reserved;
45} Q_PACKED ITENVELOPE;
46
47// Old Impulse Instrument Format (cmwt < 0x200)
48typedef struct tagITOLDINSTRUMENT
49{
50 DWORD id; // IMPI = 0x49504D49
51 CHAR filename[12];// DOS file name
52 BYTE zero;
53 BYTE flags;
54 BYTE vls;
55 BYTE vle;
56 BYTE sls;
57 BYTE sle;
58 WORD reserved1;
59 WORD fadeout;
60 BYTE nna;
61 BYTE dnc;
62 WORD trkvers;
63 BYTE nos;
64 BYTE reserved2;
65 CHAR name[26];
66 WORD reserved3[3];
67 BYTE keyboard[240];
68 BYTE volenv[200];
69 BYTE nodes[50];
70} Q_PACKED ITOLDINSTRUMENT;
71
72
73// Impulse Instrument Format
74typedef struct tagITINSTRUMENT
75{
76 DWORD id;
77 CHAR filename[12];
78 BYTE zero;
79 BYTE nna;
80 BYTE dct;
81 BYTE dca;
82 WORD fadeout;
83 signed char pps;
84 BYTE ppc;
85 BYTE gbv;
86 BYTE dfp;
87 BYTE rv;
88 BYTE rp;
89 WORD trkvers;
90 BYTE nos;
91 BYTE reserved1;
92 CHAR name[26];
93 BYTE ifc;
94 BYTE ifr;
95 BYTE mch;
96 BYTE mpr;
97 WORD mbank;
98 BYTE keyboard[240];
99 ITENVELOPE volenv;
100 ITENVELOPE panenv;
101 ITENVELOPE pitchenv;
102 BYTE dummy[4]; // was 7, but IT v2.17 saves 554 bytes
103} Q_PACKED ITINSTRUMENT;
104
105
106// IT Sample Format
107typedef struct ITSAMPLESTRUCT
108{
109 DWORD id; // 0x53504D49
110 CHAR filename[12];
111 BYTE zero;
112 BYTE gvl;
113 BYTE flags;
114 BYTE vol;
115 CHAR name[26];
116 BYTE cvt;
117 BYTE dfp;
118 DWORD length;
119 DWORD loopbegin;
120 DWORD loopend;
121 DWORD C5Speed;
122 DWORD susloopbegin;
123 DWORD susloopend;
124 DWORD samplepointer;
125 BYTE vis;
126 BYTE vid;
127 BYTE vir;
128 BYTE vit;
129} Q_PACKED ITSAMPLESTRUCT;
130
131#pragma pack()
132
133extern const BYTE autovibit2xm[8];
134extern const BYTE autovibxm2it[8];
135
136#endif