source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dls1.h@ 1170

Last change on this file since 1170 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 5.0 KB
Line 
1/* Defines and Structures for Instrument Collection Form RIFF DLS1
2 *
3 * Copyright (C) 2003-2004 Rok Mandeljc
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 */
19
20#ifndef __WINE_INCLUDE_DLS1_H
21#define __WINE_INCLUDE_DLS1_H
22
23/*****************************************************************************
24 * FOURCCs
25 */
26#define FOURCC_DLS mmioFOURCC('D','L','S',' ')
27#define FOURCC_DLID mmioFOURCC('d','l','i','d')
28#define FOURCC_COLH mmioFOURCC('c','o','l','h')
29#define FOURCC_WVPL mmioFOURCC('w','v','p','l')
30#define FOURCC_PTBL mmioFOURCC('p','t','b','l')
31#define FOURCC_PATH mmioFOURCC('p','a','t','h')
32#define FOURCC_wave mmioFOURCC('w','a','v','e')
33#define FOURCC_LINS mmioFOURCC('l','i','n','s')
34#define FOURCC_INS mmioFOURCC('i','n','s',' ')
35#define FOURCC_INSH mmioFOURCC('i','n','s','h')
36#define FOURCC_LRGN mmioFOURCC('l','r','g','n')
37#define FOURCC_RGN mmioFOURCC('r','g','n',' ')
38#define FOURCC_RGNH mmioFOURCC('r','g','n','h')
39#define FOURCC_LART mmioFOURCC('l','a','r','t')
40#define FOURCC_ART1 mmioFOURCC('a','r','t','1')
41#define FOURCC_WLNK mmioFOURCC('w','l','n','k')
42#define FOURCC_WSMP mmioFOURCC('w','s','m','p')
43#define FOURCC_VERS mmioFOURCC('v','e','r','s')
44
45/*****************************************************************************
46 * Flags
47 */
48
49#define CONN_DST_NONE 0x000
50#define CONN_DST_ATTENUATION 0x001
51#define CONN_DST_PITCH 0x003
52#define CONN_DST_PAN 0x004
53
54#define CONN_DST_LFO_FREQUENCY 0x104
55#define CONN_DST_LFO_STARTDELAY 0x105
56
57#define CONN_DST_EG1_ATTACKTIME 0x206
58#define CONN_DST_EG1_DECAYTIME 0x207
59#define CONN_DST_EG1_RELEASETIME 0x209
60#define CONN_DST_EG1_SUSTAINLEVEL 0x20A
61
62#define CONN_DST_EG2_ATTACKTIME 0x30A
63#define CONN_DST_EG2_DECAYTIME 0x30B
64#define CONN_DST_EG2_RELEASETIME 0x30D
65#define CONN_DST_EG2_SUSTAINLEVEL 0x30E
66
67#define CONN_SRC_NONE 0x000
68#define CONN_SRC_LFO 0x001
69#define CONN_SRC_KEYONVELOCITY 0x002
70#define CONN_SRC_KEYNUMBER 0x003
71#define CONN_SRC_EG1 0x004
72#define CONN_SRC_EG2 0x005
73#define CONN_SRC_PITCHWHEEL 0x006
74
75#define CONN_SRC_CC1 0x081
76#define CONN_SRC_CC7 0x087
77#define CONN_SRC_CC10 0x08A
78#define CONN_SRC_CC11 0x08B
79
80#define CONN_TRN_NONE 0x000
81#define CONN_TRN_CONCAVE 0x001
82
83#define F_INSTRUMENT_DRUMS 0x80000000
84
85#define F_RGN_OPTION_SELFNONEXCLUSIVE 0x1
86
87#define F_WAVELINK_PHASE_MASTER 0x1
88
89#define F_WSMP_NO_TRUNCATION 0x1
90#define F_WSMP_NO_COMPRESSION 0x2
91
92#define POOL_CUE_NULL 0xFFFFFFFF
93
94#define WAVELINK_CHANNEL_LEFT 0x1
95#define WAVELINK_CHANNEL_RIGHT 0x2
96
97#define WLOOP_TYPE_FORWARD 0x0
98
99/*****************************************************************************
100 * Structures
101 */
102
103/* actual structures */
104typedef struct _DLSID {
105 ULONG ulData1;
106 USHORT usData2;
107 USHORT usData3;
108 BYTE abData4[8];
109} DLSID, *LPDLSID;
110
111typedef struct _DLSVERSION {
112 DWORD dwVersionMS;
113 DWORD dwVersionLS;
114} DLSVERSION, *LPDLSVERSION;
115
116typedef struct _CONNECTION {
117 USHORT usSource;
118 USHORT usControl;
119 USHORT usDestination;
120 USHORT usTransform;
121 LONG lScale;
122} CONNECTION, *LPCONNECTION;
123
124typedef struct _CONNECTIONLIST {
125 ULONG cbSize;
126 ULONG cConnections;
127} CONNECTIONLIST, *LPCONNECTIONLIST;
128
129typedef struct _RGNRANGE {
130 USHORT usLow;
131 USHORT usHigh;
132} RGNRANGE, *LPRGNRANGE;
133
134typedef struct _MIDILOCALE {
135 ULONG ulBank;
136 ULONG ulInstrument;
137} MIDILOCALE, *LPMIDILOCALE;
138
139typedef struct _RGNHEADER {
140 RGNRANGE RangeKey;
141 RGNRANGE RangeVelocity;
142 USHORT fusOptions;
143 USHORT usKeyGroup;
144} RGNHEADER, *LPRGNHEADER;
145
146typedef struct _INSTHEADER {
147 ULONG cRegions;
148 MIDILOCALE Locale;
149} INSTHEADER, *LPINSTHEADER;
150
151typedef struct _DLSHEADER {
152 ULONG cInstruments;
153} DLSHEADER, *LPDLSHEADER;
154
155typedef struct _WAVELINK {
156 USHORT fusOptions;
157 USHORT usPhaseGroup;
158 ULONG ulChannel;
159 ULONG ulTableIndex;
160} WAVELINK, *LPWAVELINK;
161
162typedef struct _POOLCUE {
163 ULONG ulOffset;
164} POOLCUE, *LPPOOLCUE;
165
166typedef struct _POOLTABLE {
167 ULONG cbSize;
168 ULONG cCues;
169} POOLTABLE, *LPPOOLTABLE;
170
171typedef struct _rwsmp {
172 ULONG cbSize;
173 USHORT usUnityNote;
174 SHORT sFineTune;
175 LONG lAttenuation;
176 ULONG fulOptions;
177 ULONG cSampleLoops;
178} WSMPL, *LPWSMPL;
179
180typedef struct _rloop {
181 ULONG cbSize;
182 ULONG ulType;
183 ULONG ulStart;
184 ULONG ulLength;
185} WLOOP, *LPWLOOP;
186
187#endif /* __WINE_INCLUDE_DLS1_H */
Note: See TracBrowser for help on using the repository browser.