1 // Taken from Derelict-AL
2 module openal.types;
3 
4 // al
5 enum AL_VERSION_1_0 = true;
6 enum AL_VERSION_1_1 = true;
7 
8 alias ALboolean = byte;
9 alias ALchar = char;
10 alias ALbyte = byte;
11 alias ALubyte = ubyte;
12 alias ALshort = short;
13 alias ALushort = ushort;
14 alias ALint = int;
15 alias ALuint = uint;
16 alias ALsizei = int;
17 alias ALenum = int;
18 alias ALfloat = float;
19 alias ALdouble = double;
20 alias ALvoid = void;
21 
22 enum : ALboolean {
23     AL_FALSE               = 0,
24     AL_TRUE                = 1,
25 }
26 
27 enum : ALenum {
28     AL_INVALID              = -1,
29     AL_NONE                 = 0,
30 
31     AL_SOURCE_RELATIVE      = 0x202,
32 
33     AL_CONE_INNER_ANGLE     = 0x1001,
34     AL_CONE_OUTER_ANGLE     = 0x1002,
35 
36     AL_PITCH                = 0x1003,
37     AL_POSITION             = 0x1004,
38     AL_DIRECTION            = 0x1005,
39     AL_VELOCITY             = 0x1006,
40     AL_LOOPING              = 0x1007,
41     AL_BUFFER               = 0x1009,
42     AL_GAIN                 = 0x100A,
43     AL_MIN_GAIN             = 0x100D,
44     AL_MAX_GAIN             = 0x100E,
45     AL_ORIENTATION          = 0x100F,
46 
47     AL_CHANNEL_MASK         = 0x3000,
48 
49     AL_SOURCE_STATE         = 0x1010,
50     AL_INITIAL              = 0x1011,
51     AL_PLAYING              = 0x1012,
52     AL_PAUSED               = 0x1013,
53     AL_STOPPED              = 0x1014,
54 
55     AL_BUFFERS_QUEUED       = 0x1015,
56     AL_BUFFERS_PROCESSED    = 0x1016,
57 
58     AL_REFERENCE_DISTANCE   = 0x1020,
59     AL_ROLLOFF_FACTOR       = 0x1021,
60     AL_CONE_OUTER_GAIN      = 0x1022,
61     AL_MAX_DISTANCE         = 0x1023,
62 
63     AL_SEC_OFFSET           = 0x1024,
64     AL_SAMPLE_OFFSET        = 0x1025,
65     AL_BYTE_OFFSET          = 0x1026,
66 
67     AL_SOURCE_TYPE          = 0x1027,
68     AL_STATIC               = 0x1028,
69     AL_STREAMING            = 0x1029,
70     AL_UNDETERMINED         = 0x1030,
71 
72     AL_FORMAT_MONO8         = 0x1100,
73     AL_FORMAT_MONO16        = 0x1101,
74     AL_FORMAT_STEREO8       = 0x1102,
75     AL_FORMAT_STEREO16      = 0x1103,
76 
77     AL_FREQUENCY            = 0x2001,
78     AL_BITS                 = 0x2002,
79     AL_CHANNELS             = 0x2003,
80     AL_SIZE                 = 0x2004,
81 
82     AL_UNUSED               = 0x2010,
83     AL_PENDING              = 0x2011,
84     AL_PROCESSED            = 0x2012,
85 
86     AL_NO_ERROR             = AL_FALSE,
87 
88     AL_INVALID_NAME         = 0xA001,
89     AL_INVALID_ENUM         = 0xA002,
90     AL_INVALID_VALUE        = 0xA003,
91     AL_INVALID_OPERATION    = 0xA004,
92     AL_OUT_OF_MEMORY        = 0xA005,
93 
94     AL_VENDOR               = 0xB001,
95     AL_VERSION              = 0xB002,
96     AL_RENDERER             = 0xB003,
97     AL_EXTENSIONS           = 0xB004,
98 
99     AL_DOPPLER_FACTOR       = 0xC000,
100     AL_DOPPLER_VELOCITY     = 0xC001,
101     AL_SPEED_OF_SOUND       = 0xC003,
102 
103     AL_DISTANCE_MODEL               = 0xD000,
104     AL_INVERSE_DISTANCE             = 0xD001,
105     AL_INVERSE_DISTANCE_CLAMPED     = 0xD002,
106     AL_LINEAR_DISTANCE              = 0xD003,
107     AL_LINEAR_DISTANCE_CLAMPED      = 0xD004,
108     AL_EXPONENT_DISTANCE            = 0xD005,
109     AL_EXPONENT_DISTANCE_CLAMPED    = 0xD006,
110 }
111 
112 // alc
113 enum ALC_VERSION_0_1 = true;
114 
115 alias ALCdevice = void;
116 alias ALCcontext = void;
117 
118 alias ALCboolean = byte;
119 alias ALCchar = char;
120 alias ALCbyte = byte;
121 alias ALCubyte = ubyte;
122 alias ALCshort = short;
123 alias ALCushort = ushort;
124 alias ALCint = int;
125 alias ALCuint = uint;
126 alias ALCsizei = int;
127 alias ALCenum = int;
128 alias ALCfloat = float;
129 alias ALCdouble = double;
130 alias ALCvoid = void;
131 
132 enum : ALCboolean {
133     ALC_FALSE                               = 0,
134     ALC_TRUE                                = 1,
135 }
136 
137 enum : ALCenum {
138     ALC_FREQUENCY                           = 0x1007,
139     ALC_REFRESH                             = 0x1008,
140     ALC_SYNC                                = 0x1009,
141 
142     ALC_MONO_SOURCES                        = 0x1010,
143     ALC_STEREO_SOURCES                      = 0x1011,
144 
145     ALC_NO_ERROR                            = ALC_FALSE,
146     ALC_INVALID_DEVICE                      = 0xA001,
147     ALC_INVALID_CONTEXT                     = 0xA002,
148     ALC_INVALID_ENUM                        = 0xA003,
149     ALC_INVALID_VALUE                       = 0xA004,
150     ALC_OUT_OF_MEMORY                       = 0xA005,
151 
152     ALC_DEFAULT_DEVICE_SPECIFIER            = 0x1004,
153     ALC_DEVICE_SPECIFIER                    = 0x1005,
154     ALC_EXTENSIONS                          = 0x1006,
155 
156     ALC_MAJOR_VERSION                       = 0x1000,
157     ALC_MINOR_VERSION                       = 0x1001,
158 
159     ALC_ATTRIBUTES_SIZE                     = 0x1002,
160     ALC_ALL_ATTRIBUTES                      = 0x1003,
161 
162     ALC_CAPTURE_DEVICE_SPECIFIER            = 0x310,
163     ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER    = 0x311,
164     ALC_CAPTURE_SAMPLES                     = 0x312,
165 }
166 
167 // alext
168 enum : ALenum {
169     // AL_LOKI_IMA_ADPCM_format
170     AL_FORMAT_IMA_ADPCM_MONO16_EXT          = 0x10000,
171     AL_FORMAT_IMA_ADPCM_STEREO16_EXT        = 0x10001,
172 
173     // AL_LOKI_WAVE_format
174     AL_FORMAT_WAVE_EXT                      = 0x10002,
175 
176     // AL_EXT_vorbis
177     AL_FORMAT_VORBIS_EXT                    = 0x10003,
178 
179     // AL_LOKI_quadriphonic
180     AL_FORMAT_QUAD8_LOKI                    = 0x10004,
181     AL_FORMAT_QUAD16_LOKI                   = 0x10005,
182 
183     // AL_EXT_float32
184     AL_FORMAT_MONO_FLOAT32                  = 0x10010,
185     AL_FORMAT_STEREO_FLOAT32                = 0x10011,
186 
187     // ALC_LOKI_audio_channel
188     ALC_CHAN_MAIN_LOKI                      = 0x500001,
189     ALC_CHAN_PCM_LOKI                       = 0x500002,
190     ALC_CHAN_CD_LOKI                        = 0x500003,
191 
192     // ALC_ENUMERATE_ALL_EXT
193     ALC_DEFAULT_ALL_DEVICES_SPECIFIER       = 0x1012,
194     ALC_ALL_DEVICES_SPECIFIER               = 0x1013,
195 
196     // AL_EXT_MCFORMATS
197     AL_FORMAT_QUAD8                         = 0x1204,
198     AL_FORMAT_QUAD16                        = 0x1205,
199     AL_FORMAT_QUAD32                        = 0x1206,
200     AL_FORMAT_REAR8                         = 0x1207,
201     AL_FORMAT_REAR16                        = 0x1208,
202     AL_FORMAT_REAR32                        = 0x1209,
203     AL_FORMAT_51CHN8                        = 0x120A,
204     AL_FORMAT_51CHN16                       = 0x120B,
205     AL_FORMAT_51CHN32                       = 0x120C,
206     AL_FORMAT_61CHN8                        = 0x120D,
207     AL_FORMAT_61CHN16                       = 0x120E,
208     AL_FORMAT_61CHN32                       = 0x120F,
209     AL_FORMAT_71CHN8                        = 0x1210,
210     AL_FORMAT_71CHN16                       = 0x1211,
211     AL_FORMAT_71CHN32                       = 0x1212,
212 
213     // AL_EXT_IMA4
214     AL_FORMAT_MONO_IMA4                     = 0x1300,
215     AL_FORMAT_STEREO_IMA4                   = 0x1301,
216 }
217 
218 enum : ALenum {
219     ALC_EFX_MAJOR_VERSION                   = 0x20001,
220     ALC_EFX_MINOR_VERSION                   = 0x20002,
221     ALC_MAX_AUXILIARY_SENDS                 = 0x20003,
222 
223 
224     /* Listener properties. */
225     AL_METERS_PER_UNIT                      = 0x20004,
226 
227     /* Source properties. */
228     AL_DIRECT_FILTER                        = 0x20005,
229     AL_AUXILIARY_SEND_FILTER                = 0x20006,
230     AL_AIR_ABSORPTION_FACTOR                = 0x20007,
231     AL_ROOM_ROLLOFF_FACTOR                  = 0x20008,
232     AL_CONE_OUTER_GAINHF                    = 0x20009,
233     AL_DIRECT_FILTER_GAINHF_AUTO            = 0x2000A,
234     AL_AUXILIARY_SEND_FILTER_GAIN_AUTO      = 0x2000B,
235     AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO    = 0x2000C,
236 
237 
238     /* Effect properties. */
239 
240     /* Reverb effect parameters */
241     AL_REVERB_DENSITY                       = 0x0001,
242     AL_REVERB_DIFFUSION                     = 0x0002,
243     AL_REVERB_GAIN                          = 0x0003,
244     AL_REVERB_GAINHF                        = 0x0004,
245     AL_REVERB_DECAY_TIME                    = 0x0005,
246     AL_REVERB_DECAY_HFRATIO                 = 0x0006,
247     AL_REVERB_REFLECTIONS_GAIN              = 0x0007,
248     AL_REVERB_REFLECTIONS_DELAY             = 0x0008,
249     AL_REVERB_LATE_REVERB_GAIN              = 0x0009,
250     AL_REVERB_LATE_REVERB_DELAY             = 0x000A,
251     AL_REVERB_AIR_ABSORPTION_GAINHF         = 0x000B,
252     AL_REVERB_ROOM_ROLLOFF_FACTOR           = 0x000C,
253     AL_REVERB_DECAY_HFLIMIT                 = 0x000D,
254 
255     /* EAX Reverb effect parameters */
256     AL_EAXREVERB_DENSITY                    = 0x0001,
257     AL_EAXREVERB_DIFFUSION                  = 0x0002,
258     AL_EAXREVERB_GAIN                       = 0x0003,
259     AL_EAXREVERB_GAINHF                     = 0x0004,
260     AL_EAXREVERB_GAINLF                     = 0x0005,
261     AL_EAXREVERB_DECAY_TIME                 = 0x0006,
262     AL_EAXREVERB_DECAY_HFRATIO              = 0x0007,
263     AL_EAXREVERB_DECAY_LFRATIO              = 0x0008,
264     AL_EAXREVERB_REFLECTIONS_GAIN           = 0x0009,
265     AL_EAXREVERB_REFLECTIONS_DELAY          = 0x000A,
266     AL_EAXREVERB_REFLECTIONS_PAN            = 0x000B,
267     AL_EAXREVERB_LATE_REVERB_GAIN           = 0x000C,
268     AL_EAXREVERB_LATE_REVERB_DELAY          = 0x000D,
269     AL_EAXREVERB_LATE_REVERB_PAN            = 0x000E,
270     AL_EAXREVERB_ECHO_TIME                  = 0x000F,
271     AL_EAXREVERB_ECHO_DEPTH                 = 0x0010,
272     AL_EAXREVERB_MODULATION_TIME            = 0x0011,
273     AL_EAXREVERB_MODULATION_DEPTH           = 0x0012,
274     AL_EAXREVERB_AIR_ABSORPTION_GAINHF      = 0x0013,
275     AL_EAXREVERB_HFREFERENCE                = 0x0014,
276     AL_EAXREVERB_LFREFERENCE                = 0x0015,
277     AL_EAXREVERB_ROOM_ROLLOFF_FACTOR        = 0x0016,
278     AL_EAXREVERB_DECAY_HFLIMIT              = 0x0017,
279 
280     /* Chorus effect parameters */
281     AL_CHORUS_WAVEFORM                      = 0x0001,
282     AL_CHORUS_PHASE                         = 0x0002,
283     AL_CHORUS_RATE                          = 0x0003,
284     AL_CHORUS_DEPTH                         = 0x0004,
285     AL_CHORUS_FEEDBACK                      = 0x0005,
286     AL_CHORUS_DELAY                         = 0x0006,
287 
288     /* Distortion effect parameters */
289     AL_DISTORTION_EDGE                      = 0x0001,
290     AL_DISTORTION_GAIN                      = 0x0002,
291     AL_DISTORTION_LOWPASS_CUTOFF            = 0x0003,
292     AL_DISTORTION_EQCENTER                  = 0x0004,
293     AL_DISTORTION_EQBANDWIDTH               = 0x0005,
294 
295     /* Echo effect parameters */
296     AL_ECHO_DELAY                           = 0x0001,
297     AL_ECHO_LRDELAY                         = 0x0002,
298     AL_ECHO_DAMPING                         = 0x0003,
299     AL_ECHO_FEEDBACK                        = 0x0004,
300     AL_ECHO_SPREAD                          = 0x0005,
301 
302     /* Flanger effect parameters */
303     AL_FLANGER_WAVEFORM                     = 0x0001,
304     AL_FLANGER_PHASE                        = 0x0002,
305     AL_FLANGER_RATE                         = 0x0003,
306     AL_FLANGER_DEPTH                        = 0x0004,
307     AL_FLANGER_FEEDBACK                     = 0x0005,
308     AL_FLANGER_DELAY                        = 0x0006,
309 
310     /* Frequency shifter effect parameters */
311     AL_FREQUENCY_SHIFTER_FREQUENCY          = 0x0001,
312     AL_FREQUENCY_SHIFTER_LEFT_DIRECTION     = 0x0002,
313     AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION    = 0x0003,
314 
315     /* Vocal morpher effect parameters */
316     AL_VOCAL_MORPHER_PHONEMEA               = 0x0001,
317     AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING = 0x0002,
318     AL_VOCAL_MORPHER_PHONEMEB               = 0x0003,
319     AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING = 0x0004,
320     AL_VOCAL_MORPHER_WAVEFORM               = 0x0005,
321     AL_VOCAL_MORPHER_RATE                   = 0x0006,
322 
323     /* Pitchshifter effect parameters */
324     AL_PITCH_SHIFTER_COARSE_TUNE            = 0x0001,
325     AL_PITCH_SHIFTER_FINE_TUNE              = 0x0002,
326 
327     /* Ringmodulator effect parameters */
328     AL_RING_MODULATOR_FREQUENCY             = 0x0001,
329     AL_RING_MODULATOR_HIGHPASS_CUTOFF       = 0x0002,
330     AL_RING_MODULATOR_WAVEFORM              = 0x0003,
331 
332     /* Autowah effect parameters */
333     AL_AUTOWAH_ATTACK_TIME                  = 0x0001,
334     AL_AUTOWAH_RELEASE_TIME                 = 0x0002,
335     AL_AUTOWAH_RESONANCE                    = 0x0003,
336     AL_AUTOWAH_PEAK_GAIN                    = 0x0004,
337 
338     /* Compressor effect parameters */
339     AL_COMPRESSOR_ONOFF                     = 0x0001,
340 
341     /* Equalizer effect parameters */
342     AL_EQUALIZER_LOW_GAIN                   = 0x0001,
343     AL_EQUALIZER_LOW_CUTOFF                 = 0x0002,
344     AL_EQUALIZER_MID1_GAIN                  = 0x0003,
345     AL_EQUALIZER_MID1_CENTER                = 0x0004,
346     AL_EQUALIZER_MID1_WIDTH                 = 0x0005,
347     AL_EQUALIZER_MID2_GAIN                  = 0x0006,
348     AL_EQUALIZER_MID2_CENTER                = 0x0007,
349     AL_EQUALIZER_MID2_WIDTH                 = 0x0008,
350     AL_EQUALIZER_HIGH_GAIN                  = 0x0009,
351     AL_EQUALIZER_HIGH_CUTOFF                = 0x000A,
352 
353     /* Effect type */
354     AL_EFFECT_FIRST_PARAMETER               = 0x0000,
355     AL_EFFECT_LAST_PARAMETER                = 0x8000,
356     AL_EFFECT_TYPE                          = 0x8001,
357 
358     /* Effect types, used with the AL_EFFECT_TYPE property */
359     AL_EFFECT_NULL                          = 0x0000,
360     AL_EFFECT_REVERB                        = 0x0001,
361     AL_EFFECT_CHORUS                        = 0x0002,
362     AL_EFFECT_DISTORTION                    = 0x0003,
363     AL_EFFECT_ECHO                          = 0x0004,
364     AL_EFFECT_FLANGER                       = 0x0005,
365     AL_EFFECT_FREQUENCY_SHIFTER             = 0x0006,
366     AL_EFFECT_VOCAL_MORPHER                 = 0x0007,
367     AL_EFFECT_PITCH_SHIFTER                 = 0x0008,
368     AL_EFFECT_RING_MODULATOR                = 0x0009,
369     AL_EFFECT_AUTOWAH                       = 0x000A,
370     AL_EFFECT_COMPRESSOR                    = 0x000B,
371     AL_EFFECT_EQUALIZER                     = 0x000C,
372     AL_EFFECT_EAXREVERB                     = 0x8000,
373 
374     /* Auxiliary Effect Slot properties. */
375     AL_EFFECTSLOT_EFFECT                    = 0x0001,
376     AL_EFFECTSLOT_GAIN                      = 0x0002,
377     AL_EFFECTSLOT_AUXILIARY_SEND_AUTO       = 0x0003,
378 
379     /* NULL Auxiliary Slot ID to disable a source send. */
380     AL_EFFECTSLOT_NULL                      = 0x0000,
381 
382 
383     /* Filter properties. */
384 
385     /* Lowpass filter parameters */
386     AL_LOWPASS_GAIN                         = 0x0001,
387     AL_LOWPASS_GAINHF                       = 0x0002,
388 
389     /* Highpass filter parameters */
390     AL_HIGHPASS_GAIN                        = 0x0001,
391     AL_HIGHPASS_GAINLF                      = 0x0002,
392 
393     /* Bandpass filter parameters */
394     AL_BANDPASS_GAIN                        = 0x0001,
395     AL_BANDPASS_GAINLF                      = 0x0002,
396     AL_BANDPASS_GAINHF                      = 0x0003,
397 
398     /* Filter type */
399     AL_FILTER_FIRST_PARAMETER               = 0x0000,
400     AL_FILTER_LAST_PARAMETER                = 0x8000,
401     AL_FILTER_TYPE                          = 0x8001,
402 
403     /* Filter types, used with the AL_FILTER_TYPE property */
404     AL_FILTER_NULL                          = 0x0000,
405     AL_FILTER_LOWPASS                       = 0x0001,
406     AL_FILTER_HIGHPASS                      = 0x0002,
407     AL_FILTER_BANDPASS                      = 0x0003,
408 
409 
410 
411     AL_WAVEFORM_SINUSOID                    = 0,
412     AL_WAVEFORM_TRIANGLE                    = 1,
413     AL_WAVEFORM_SAW                         = 2
414 }
415 
416 enum : ALenum {
417     AL_VOCAL_MORPHER_PHONEME_A              = 0,
418     AL_VOCAL_MORPHER_PHONEME_E              = 1,
419     AL_VOCAL_MORPHER_PHONEME_I              = 2,
420     AL_VOCAL_MORPHER_PHONEME_O              = 3,
421     AL_VOCAL_MORPHER_PHONEME_U              = 4,
422     AL_VOCAL_MORPHER_PHONEME_AA             = 5,
423     AL_VOCAL_MORPHER_PHONEME_AE             = 6, 
424     AL_VOCAL_MORPHER_PHONEME_AH             = 7,
425     AL_VOCAL_MORPHER_PHONEME_AO             = 8,
426     AL_VOCAL_MORPHER_PHONEME_EH             = 9,
427     AL_VOCAL_MORPHER_PHONEME_ER             = 10,
428     AL_VOCAL_MORPHER_PHONEME_IH             = 11,
429     AL_VOCAL_MORPHER_PHONEME_IY             = 12,
430     AL_VOCAL_MORPHER_PHONEME_UH             = 13,
431     AL_VOCAL_MORPHER_PHONEME_UW             = 14,
432     AL_VOCAL_MORPHER_PHONEME_B              = 15,
433     AL_VOCAL_MORPHER_PHONEME_D              = 16,
434     AL_VOCAL_MORPHER_PHONEME_F              = 17,
435     AL_VOCAL_MORPHER_PHONEME_G              = 18,
436     AL_VOCAL_MORPHER_PHONEME_J              = 19,
437     AL_VOCAL_MORPHER_PHONEME_K              = 20,
438     AL_VOCAL_MORPHER_PHONEME_L              = 21,
439     AL_VOCAL_MORPHER_PHONEME_M              = 22,
440     AL_VOCAL_MORPHER_PHONEME_N              = 23,
441     AL_VOCAL_MORPHER_PHONEME_P              = 24,
442     AL_VOCAL_MORPHER_PHONEME_R              = 25,
443     AL_VOCAL_MORPHER_PHONEME_S              = 26,
444     AL_VOCAL_MORPHER_PHONEME_T              = 27,
445     AL_VOCAL_MORPHER_PHONEME_V              = 28,
446     AL_VOCAL_MORPHER_PHONEME_Z              = 29
447 }
448 
449 enum : ALenum {
450     AL_EFFECTSLOT_TARGET_SOFT               = 0xf000
451 }