xref: /aosp_15_r20/external/sonivox/arm-wt-22k/lib_src/dls.h (revision f81fb7c475c4b71ff83bdcc517de2a8c174e4e5c)
1*f81fb7c4SAndroid Build Coastguard Worker  /*
2*f81fb7c4SAndroid Build Coastguard Worker 
3*f81fb7c4SAndroid Build Coastguard Worker      dls.h
4*f81fb7c4SAndroid Build Coastguard Worker 
5*f81fb7c4SAndroid Build Coastguard Worker      Description:
6*f81fb7c4SAndroid Build Coastguard Worker 
7*f81fb7c4SAndroid Build Coastguard Worker      Interface defines and structures for the Instrument Collection Form
8*f81fb7c4SAndroid Build Coastguard Worker      RIFF DLS.
9*f81fb7c4SAndroid Build Coastguard Worker 
10*f81fb7c4SAndroid Build Coastguard Worker      Written by Sonic Foundry 1996.  Released for public use.
11*f81fb7c4SAndroid Build Coastguard Worker 
12*f81fb7c4SAndroid Build Coastguard Worker  */
13*f81fb7c4SAndroid Build Coastguard Worker 
14*f81fb7c4SAndroid Build Coastguard Worker  #ifndef _INC_DLS
15*f81fb7c4SAndroid Build Coastguard Worker  #define _INC_DLS
16*f81fb7c4SAndroid Build Coastguard Worker 
17*f81fb7c4SAndroid Build Coastguard Worker  /*
18*f81fb7c4SAndroid Build Coastguard Worker 
19*f81fb7c4SAndroid Build Coastguard Worker     Layout of an instrument collection:
20*f81fb7c4SAndroid Build Coastguard Worker 
21*f81fb7c4SAndroid Build Coastguard Worker 
22*f81fb7c4SAndroid Build Coastguard Worker     RIFF [] 'DLS ' [colh,INSTLIST,WAVEPOOL,INFOLIST]
23*f81fb7c4SAndroid Build Coastguard Worker 
24*f81fb7c4SAndroid Build Coastguard Worker     INSTLIST
25*f81fb7c4SAndroid Build Coastguard Worker     LIST [] 'lins'
26*f81fb7c4SAndroid Build Coastguard Worker                   LIST [] 'ins ' [insh,RGNLIST,ARTLIST,INFOLIST]
27*f81fb7c4SAndroid Build Coastguard Worker                   LIST [] 'ins ' [insh,RGNLIST,ARTLIST,INFOLIST]
28*f81fb7c4SAndroid Build Coastguard Worker                   LIST [] 'ins ' [insh,RGNLIST,ARTLIST,INFOLIST]
29*f81fb7c4SAndroid Build Coastguard Worker 
30*f81fb7c4SAndroid Build Coastguard Worker     RGNLIST
31*f81fb7c4SAndroid Build Coastguard Worker     LIST [] 'lrgn'
32*f81fb7c4SAndroid Build Coastguard Worker                   LIST [] 'rgn '  [rgnh,wsmp,wlnk,ARTLIST]
33*f81fb7c4SAndroid Build Coastguard Worker                   LIST [] 'rgn '  [rgnh,wsmp,wlnk,ARTLIST]
34*f81fb7c4SAndroid Build Coastguard Worker                   LIST [] 'rgn '  [rgnh,wsmp,wlnk,ARTLIST]
35*f81fb7c4SAndroid Build Coastguard Worker 
36*f81fb7c4SAndroid Build Coastguard Worker     ARTLIST
37*f81fb7c4SAndroid Build Coastguard Worker     LIST [] 'lart'
38*f81fb7c4SAndroid Build Coastguard Worker             'art1' level 1 Articulation connection graph
39*f81fb7c4SAndroid Build Coastguard Worker             'art2' level 2 Articulation connection graph
40*f81fb7c4SAndroid Build Coastguard Worker             '3rd1' Possible 3rd party articulation structure 1
41*f81fb7c4SAndroid Build Coastguard Worker             '3rd2' Possible 3rd party articulation structure 2 .... and so on
42*f81fb7c4SAndroid Build Coastguard Worker 
43*f81fb7c4SAndroid Build Coastguard Worker     WAVEPOOL
44*f81fb7c4SAndroid Build Coastguard Worker     ptbl [] [pool table]
45*f81fb7c4SAndroid Build Coastguard Worker     LIST [] 'wvpl'
46*f81fb7c4SAndroid Build Coastguard Worker                   [path],
47*f81fb7c4SAndroid Build Coastguard Worker                   [path],
48*f81fb7c4SAndroid Build Coastguard Worker                   LIST [] 'wave',RIFFWAVE
49*f81fb7c4SAndroid Build Coastguard Worker                   LIST [] 'wave',RIFFWAVE
50*f81fb7c4SAndroid Build Coastguard Worker                   LIST [] 'wave',RIFFWAVE
51*f81fb7c4SAndroid Build Coastguard Worker                   LIST [] 'wave',RIFFWAVE
52*f81fb7c4SAndroid Build Coastguard Worker                   LIST [] 'wave',RIFFWAVE
53*f81fb7c4SAndroid Build Coastguard Worker 
54*f81fb7c4SAndroid Build Coastguard Worker     INFOLIST
55*f81fb7c4SAndroid Build Coastguard Worker     LIST [] 'INFO'
56*f81fb7c4SAndroid Build Coastguard Worker                   'icmt' 'One of those crazy comments.'
57*f81fb7c4SAndroid Build Coastguard Worker                   'icop' 'Copyright (C) 1996 Sonic Foundry'
58*f81fb7c4SAndroid Build Coastguard Worker 
59*f81fb7c4SAndroid Build Coastguard Worker  */
60*f81fb7c4SAndroid Build Coastguard Worker 
61*f81fb7c4SAndroid Build Coastguard Worker 
62*f81fb7c4SAndroid Build Coastguard Worker  /*
63*f81fb7c4SAndroid Build Coastguard Worker     FOURCC's used in the DLS file
64*f81fb7c4SAndroid Build Coastguard Worker  */
65*f81fb7c4SAndroid Build Coastguard Worker /* shree */
66*f81fb7c4SAndroid Build Coastguard Worker //#define FAR
67*f81fb7c4SAndroid Build Coastguard Worker 
68*f81fb7c4SAndroid Build Coastguard Worker /* shree
69*f81fb7c4SAndroid Build Coastguard Worker 
70*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_DLS   mmioFOURCC('D','L','S',' ')
71*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_COLH  mmioFOURCC('c','o','l','h')
72*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_WVPL  mmioFOURCC('w','v','p','l')
73*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_PTBL  mmioFOURCC('p','t','b','l')
74*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_PATH  mmioFOURCC('p','a','t','h')
75*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_wave  mmioFOURCC('w','a','v','e')
76*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_LINS  mmioFOURCC('l','i','n','s')
77*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_INS   mmioFOURCC('i','n','s',' ')
78*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_INSH  mmioFOURCC('i','n','s','h')
79*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_LRGN  mmioFOURCC('l','r','g','n')
80*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_RGN   mmioFOURCC('r','g','n',' ')
81*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_RGNH  mmioFOURCC('r','g','n','h')
82*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_LART  mmioFOURCC('l','a','r','t')
83*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_ART1  mmioFOURCC('a','r','t','1')
84*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_WLNK  mmioFOURCC('w','l','n','k')
85*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_WSMP  mmioFOURCC('w','s','m','p')
86*f81fb7c4SAndroid Build Coastguard Worker  #define FOURCC_VERS  mmioFOURCC('v','e','r','s')
87*f81fb7c4SAndroid Build Coastguard Worker */
88*f81fb7c4SAndroid Build Coastguard Worker  /*
89*f81fb7c4SAndroid Build Coastguard Worker     Articulation connection graph definitions
90*f81fb7c4SAndroid Build Coastguard Worker  */
91*f81fb7c4SAndroid Build Coastguard Worker 
92*f81fb7c4SAndroid Build Coastguard Worker  /* Generic Sources */
93*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_NONE              0x0000
94*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_LFO               0x0001
95*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_KEYONVELOCITY     0x0002
96*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_KEYNUMBER         0x0003
97*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_EG1               0x0004
98*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_EG2               0x0005
99*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_PITCHWHEEL        0x0006
100*f81fb7c4SAndroid Build Coastguard Worker 
101*f81fb7c4SAndroid Build Coastguard Worker  /* Midi Controllers 0-127 */
102*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_CC1               0x0081
103*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_CC7               0x0087
104*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_CC10              0x008a
105*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_CC11              0x008b
106*f81fb7c4SAndroid Build Coastguard Worker 
107*f81fb7c4SAndroid Build Coastguard Worker  /* Registered Parameter Numbers */
108*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_RPN0             0x0100
109*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_RPN1             0x0101
110*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_SRC_RPN2             0x0102
111*f81fb7c4SAndroid Build Coastguard Worker 
112*f81fb7c4SAndroid Build Coastguard Worker  /* Generic Destinations */
113*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_NONE              0x0000
114*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_ATTENUATION       0x0001
115*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_RESERVED          0x0002
116*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_PITCH             0x0003
117*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_PAN               0x0004
118*f81fb7c4SAndroid Build Coastguard Worker 
119*f81fb7c4SAndroid Build Coastguard Worker  /* LFO Destinations */
120*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_LFO_FREQUENCY     0x0104
121*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_LFO_STARTDELAY    0x0105
122*f81fb7c4SAndroid Build Coastguard Worker 
123*f81fb7c4SAndroid Build Coastguard Worker  /* EG1 Destinations */
124*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_EG1_ATTACKTIME    0x0206
125*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_EG1_DECAYTIME     0x0207
126*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_EG1_RESERVED      0x0208
127*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_EG1_RELEASETIME   0x0209
128*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_EG1_SUSTAINLEVEL  0x020a
129*f81fb7c4SAndroid Build Coastguard Worker 
130*f81fb7c4SAndroid Build Coastguard Worker  /* EG2 Destinations */
131*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_EG2_ATTACKTIME    0x030a
132*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_EG2_DECAYTIME     0x030b
133*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_EG2_RESERVED      0x030c
134*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_EG2_RELEASETIME   0x030d
135*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_DST_EG2_SUSTAINLEVEL  0x030e
136*f81fb7c4SAndroid Build Coastguard Worker 
137*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_TRN_NONE              0x0000
138*f81fb7c4SAndroid Build Coastguard Worker  #define CONN_TRN_CONCAVE           0x0001
139*f81fb7c4SAndroid Build Coastguard Worker 
140*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _DLSVERSION {
141*f81fb7c4SAndroid Build Coastguard Worker    DWORD    dwVersionMS;
142*f81fb7c4SAndroid Build Coastguard Worker    DWORD    dwVersionLS;
143*f81fb7c4SAndroid Build Coastguard Worker  }DLSVERSION, FAR *LPDLSVERSION;
144*f81fb7c4SAndroid Build Coastguard Worker 
145*f81fb7c4SAndroid Build Coastguard Worker 
146*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _CONNECTION {
147*f81fb7c4SAndroid Build Coastguard Worker    USHORT   usSource;
148*f81fb7c4SAndroid Build Coastguard Worker    USHORT   usControl;
149*f81fb7c4SAndroid Build Coastguard Worker    USHORT   usDestination;
150*f81fb7c4SAndroid Build Coastguard Worker    USHORT   usTransform;
151*f81fb7c4SAndroid Build Coastguard Worker    LONG     lScale;
152*f81fb7c4SAndroid Build Coastguard Worker    }CONNECTION, FAR *LPCONNECTION;
153*f81fb7c4SAndroid Build Coastguard Worker 
154*f81fb7c4SAndroid Build Coastguard Worker 
155*f81fb7c4SAndroid Build Coastguard Worker  /* Level 1 Articulation Data */
156*f81fb7c4SAndroid Build Coastguard Worker 
157*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _CONNECTIONLIST {
158*f81fb7c4SAndroid Build Coastguard Worker    ULONG    cbSize;            /* size of the connection list structure */
159*f81fb7c4SAndroid Build Coastguard Worker    ULONG    cConnections;      /* count of connections in the list */
160*f81fb7c4SAndroid Build Coastguard Worker    } CONNECTIONLIST, FAR *LPCONNECTIONLIST;
161*f81fb7c4SAndroid Build Coastguard Worker 
162*f81fb7c4SAndroid Build Coastguard Worker 
163*f81fb7c4SAndroid Build Coastguard Worker 
164*f81fb7c4SAndroid Build Coastguard Worker  /*
165*f81fb7c4SAndroid Build Coastguard Worker     Generic type defines for regions and instruments
166*f81fb7c4SAndroid Build Coastguard Worker  */
167*f81fb7c4SAndroid Build Coastguard Worker 
168*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _RGNRANGE {
169*f81fb7c4SAndroid Build Coastguard Worker    USHORT usLow;
170*f81fb7c4SAndroid Build Coastguard Worker    USHORT usHigh;
171*f81fb7c4SAndroid Build Coastguard Worker  }RGNRANGE, FAR * LPRGNRANGE;
172*f81fb7c4SAndroid Build Coastguard Worker 
173*f81fb7c4SAndroid Build Coastguard Worker  #define F_INSTRUMENT_DRUMS      0x80000000
174*f81fb7c4SAndroid Build Coastguard Worker 
175*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _MIDILOCALE {
176*f81fb7c4SAndroid Build Coastguard Worker    ULONG ulBank;
177*f81fb7c4SAndroid Build Coastguard Worker    ULONG ulInstrument;
178*f81fb7c4SAndroid Build Coastguard Worker  }MIDILOCALE, FAR *LPMIDILOCALE;
179*f81fb7c4SAndroid Build Coastguard Worker 
180*f81fb7c4SAndroid Build Coastguard Worker  /*
181*f81fb7c4SAndroid Build Coastguard Worker     Header structures found in an DLS file for collection, instruments, and
182*f81fb7c4SAndroid Build Coastguard Worker     regions.
183*f81fb7c4SAndroid Build Coastguard Worker  */
184*f81fb7c4SAndroid Build Coastguard Worker 
185*f81fb7c4SAndroid Build Coastguard Worker  #define F_RGN_OPTION_SELFNONEXCLUSIVE  0x0001
186*f81fb7c4SAndroid Build Coastguard Worker 
187*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _RGNHEADER {
188*f81fb7c4SAndroid Build Coastguard Worker    RGNRANGE RangeKey;            /* Key range */
189*f81fb7c4SAndroid Build Coastguard Worker    RGNRANGE RangeVelocity;       /* Velocity Range */
190*f81fb7c4SAndroid Build Coastguard Worker    USHORT   fusOptions;          /* Synthesis options for this range */
191*f81fb7c4SAndroid Build Coastguard Worker    USHORT   usKeyGroup;          /* Key grouping for non simultaneous play
192*f81fb7c4SAndroid Build Coastguard Worker                                     0 = no group, 1 up is group
193*f81fb7c4SAndroid Build Coastguard Worker                                     for Level 1 only groups 1-15 are allowed */
194*f81fb7c4SAndroid Build Coastguard Worker  }RGNHEADER, FAR *LPRGNHEADER;
195*f81fb7c4SAndroid Build Coastguard Worker 
196*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _INSTHEADER {
197*f81fb7c4SAndroid Build Coastguard Worker    ULONG      cRegions;          /* Count of regions in this instrument */
198*f81fb7c4SAndroid Build Coastguard Worker    MIDILOCALE Locale;            /* Intended MIDI locale of this instrument */
199*f81fb7c4SAndroid Build Coastguard Worker  }INSTHEADER, FAR *LPINSTHEADER;
200*f81fb7c4SAndroid Build Coastguard Worker 
201*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _DLSHEADER {
202*f81fb7c4SAndroid Build Coastguard Worker    ULONG      cInstruments;      /* Count of instruments in the collection */
203*f81fb7c4SAndroid Build Coastguard Worker  }DLSHEADER, FAR *LPDLSHEADER;
204*f81fb7c4SAndroid Build Coastguard Worker 
205*f81fb7c4SAndroid Build Coastguard Worker  /*
206*f81fb7c4SAndroid Build Coastguard Worker     definitions for the Wave link structure
207*f81fb7c4SAndroid Build Coastguard Worker  */
208*f81fb7c4SAndroid Build Coastguard Worker 
209*f81fb7c4SAndroid Build Coastguard Worker  /*****  For level 1 only WAVELINK_CHANNEL_MONO is valid  ****
210*f81fb7c4SAndroid Build Coastguard Worker    ulChannel allows for up to 32 channels of audio with each bit position
211*f81fb7c4SAndroid Build Coastguard Worker    specifiying a channel of playback */
212*f81fb7c4SAndroid Build Coastguard Worker 
213*f81fb7c4SAndroid Build Coastguard Worker  #define WAVELINK_CHANNEL_LEFT    0x0001
214*f81fb7c4SAndroid Build Coastguard Worker  #define WAVELINK_CHANNEL_RIGHT   0x0002
215*f81fb7c4SAndroid Build Coastguard Worker 
216*f81fb7c4SAndroid Build Coastguard Worker  #define F_WAVELINK_PHASE_MASTER  0x0001
217*f81fb7c4SAndroid Build Coastguard Worker 
218*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _WAVELINK { /* any paths or links are stored right after struct */
219*f81fb7c4SAndroid Build Coastguard Worker    USHORT   fusOptions;     /* options flags for this wave */
220*f81fb7c4SAndroid Build Coastguard Worker    USHORT   usPhaseGroup;   /* Phase grouping for locking channels */
221*f81fb7c4SAndroid Build Coastguard Worker    ULONG    ulChannel;      /* channel placement */
222*f81fb7c4SAndroid Build Coastguard Worker    ULONG    ulTableIndex;   /* index into the wave pool table, 0 based */
223*f81fb7c4SAndroid Build Coastguard Worker  }WAVELINK, FAR *LPWAVELINK;
224*f81fb7c4SAndroid Build Coastguard Worker 
225*f81fb7c4SAndroid Build Coastguard Worker  #define POOL_CUE_NULL  0xffffffff
226*f81fb7c4SAndroid Build Coastguard Worker 
227*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _POOLCUE {
228*f81fb7c4SAndroid Build Coastguard Worker  //  ULONG    ulEntryIndex;   /* Index entry in the list */
229*f81fb7c4SAndroid Build Coastguard Worker    ULONG    ulOffset;       /* Offset to the entry in the list */
230*f81fb7c4SAndroid Build Coastguard Worker  }POOLCUE, FAR *LPPOOLCUE;
231*f81fb7c4SAndroid Build Coastguard Worker 
232*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _POOLTABLE {
233*f81fb7c4SAndroid Build Coastguard Worker    ULONG    cbSize;            /* size of the pool table structure */
234*f81fb7c4SAndroid Build Coastguard Worker    ULONG    cCues;             /* count of cues in the list */
235*f81fb7c4SAndroid Build Coastguard Worker    } POOLTABLE, FAR *LPPOOLTABLE;
236*f81fb7c4SAndroid Build Coastguard Worker 
237*f81fb7c4SAndroid Build Coastguard Worker  /*
238*f81fb7c4SAndroid Build Coastguard Worker     Structures for the "wsmp" chunk
239*f81fb7c4SAndroid Build Coastguard Worker  */
240*f81fb7c4SAndroid Build Coastguard Worker 
241*f81fb7c4SAndroid Build Coastguard Worker  #define F_WSMP_NO_TRUNCATION     0x0001
242*f81fb7c4SAndroid Build Coastguard Worker  #define F_WSMP_NO_COMPRESSION    0x0002
243*f81fb7c4SAndroid Build Coastguard Worker 
244*f81fb7c4SAndroid Build Coastguard Worker 
245*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _rwsmp {
246*f81fb7c4SAndroid Build Coastguard Worker    ULONG   cbSize;
247*f81fb7c4SAndroid Build Coastguard Worker    USHORT  usUnityNote;         /* MIDI Unity Playback Note */
248*f81fb7c4SAndroid Build Coastguard Worker    SHORT   sFineTune;           /* Fine Tune in log tuning */
249*f81fb7c4SAndroid Build Coastguard Worker    LONG    lAttenuation;        /* Overall Attenuation to be applied to data */
250*f81fb7c4SAndroid Build Coastguard Worker    ULONG   fulOptions;          /* Flag options */
251*f81fb7c4SAndroid Build Coastguard Worker    ULONG   cSampleLoops;        /* Count of Sample loops, 0 loops is one shot */
252*f81fb7c4SAndroid Build Coastguard Worker    } WSMPL, FAR *LPWSMPL;
253*f81fb7c4SAndroid Build Coastguard Worker 
254*f81fb7c4SAndroid Build Coastguard Worker 
255*f81fb7c4SAndroid Build Coastguard Worker  /* This loop type is a normal forward playing loop which is continually
256*f81fb7c4SAndroid Build Coastguard Worker     played until the envelope reaches an off threshold in the release
257*f81fb7c4SAndroid Build Coastguard Worker     portion of the volume envelope */
258*f81fb7c4SAndroid Build Coastguard Worker 
259*f81fb7c4SAndroid Build Coastguard Worker  #define WLOOP_TYPE_FORWARD   0
260*f81fb7c4SAndroid Build Coastguard Worker 
261*f81fb7c4SAndroid Build Coastguard Worker  typedef struct _rloop {
262*f81fb7c4SAndroid Build Coastguard Worker    ULONG cbSize;
263*f81fb7c4SAndroid Build Coastguard Worker    ULONG ulType;              /* Loop Type */
264*f81fb7c4SAndroid Build Coastguard Worker    ULONG ulStart;             /* Start of loop in samples */
265*f81fb7c4SAndroid Build Coastguard Worker    ULONG ulLength;            /* Length of loop in samples */
266*f81fb7c4SAndroid Build Coastguard Worker  } WLOOP, FAR *LPWLOOP;
267*f81fb7c4SAndroid Build Coastguard Worker 
268*f81fb7c4SAndroid Build Coastguard Worker  #endif /* _INC_DLS */
269