DEADSOFTWARE

OpenAL: Add EAXEFXREVERBPROPERTIES
[d2df-sdl.git] / src / lib / openal / efx.inc
1 const
2 ALC_EXT_EFX_NAME = 'ALC_EXT_EFX';
3 ALC_EFX_MAJOR_VERSION = $20001;
4 ALC_EFX_MINOR_VERSION = $20002;
5 ALC_MAX_AUXILIARY_SENDS = $20003;
6 (* Listener properties. *)
7 AL_METERS_PER_UNIT = $20004;
8 (* Source properties. *)
9 AL_DIRECT_FILTER = $20005;
10 AL_AUXILIARY_SEND_FILTER = $20006;
11 AL_AIR_ABSORPTION_FACTOR = $20007;
12 AL_ROOM_ROLLOFF_FACTOR = $20008;
13 AL_CONE_OUTER_GAINHF = $20009;
14 AL_DIRECT_FILTER_GAINHF_AUTO = $2000A;
15 AL_AUXILIARY_SEND_FILTER_GAIN_AUTO = $2000B;
16 AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO = $2000C;
17 (* Effect properties. *)
18 (* Reverb effect parameters *)
19 AL_REVERB_DENSITY = $0001;
20 AL_REVERB_DIFFUSION = $0002;
21 AL_REVERB_GAIN = $0003;
22 AL_REVERB_GAINHF = $0004;
23 AL_REVERB_DECAY_TIME = $0005;
24 AL_REVERB_DECAY_HFRATIO = $0006;
25 AL_REVERB_REFLECTIONS_GAIN = $0007;
26 AL_REVERB_REFLECTIONS_DELAY = $0008;
27 AL_REVERB_LATE_REVERB_GAIN = $0009;
28 AL_REVERB_LATE_REVERB_DELAY = $000A;
29 AL_REVERB_AIR_ABSORPTION_GAINHF = $000B;
30 AL_REVERB_ROOM_ROLLOFF_FACTOR = $000C;
31 AL_REVERB_DECAY_HFLIMIT = $000D;
32 (* EAX Reverb effect parameters *)
33 AL_EAXREVERB_DENSITY = $0001;
34 AL_EAXREVERB_DIFFUSION = $0002;
35 AL_EAXREVERB_GAIN = $0003;
36 AL_EAXREVERB_GAINHF = $0004;
37 AL_EAXREVERB_GAINLF = $0005;
38 AL_EAXREVERB_DECAY_TIME = $0006;
39 AL_EAXREVERB_DECAY_HFRATIO = $0007;
40 AL_EAXREVERB_DECAY_LFRATIO = $0008;
41 AL_EAXREVERB_REFLECTIONS_GAIN = $0009;
42 AL_EAXREVERB_REFLECTIONS_DELAY = $000A;
43 AL_EAXREVERB_REFLECTIONS_PAN = $000B;
44 AL_EAXREVERB_LATE_REVERB_GAIN = $000C;
45 AL_EAXREVERB_LATE_REVERB_DELAY = $000D;
46 AL_EAXREVERB_LATE_REVERB_PAN = $000E;
47 AL_EAXREVERB_ECHO_TIME = $000F;
48 AL_EAXREVERB_ECHO_DEPTH = $0010;
49 AL_EAXREVERB_MODULATION_TIME = $0011;
50 AL_EAXREVERB_MODULATION_DEPTH = $0012;
51 AL_EAXREVERB_AIR_ABSORPTION_GAINHF = $0013;
52 AL_EAXREVERB_HFREFERENCE = $0014;
53 AL_EAXREVERB_LFREFERENCE = $0015;
54 AL_EAXREVERB_ROOM_ROLLOFF_FACTOR = $0016;
55 AL_EAXREVERB_DECAY_HFLIMIT = $0017;
56 (* Chorus effect parameters *)
57 AL_CHORUS_WAVEFORM = $0001;
58 AL_CHORUS_PHASE = $0002;
59 AL_CHORUS_RATE = $0003;
60 AL_CHORUS_DEPTH = $0004;
61 AL_CHORUS_FEEDBACK = $0005;
62 AL_CHORUS_DELAY = $0006;
63 (* Distortion effect parameters *)
64 AL_DISTORTION_EDGE = $0001;
65 AL_DISTORTION_GAIN = $0002;
66 AL_DISTORTION_LOWPASS_CUTOFF = $0003;
67 AL_DISTORTION_EQCENTER = $0004;
68 AL_DISTORTION_EQBANDWIDTH = $0005;
69 (* Echo effect parameters *)
70 AL_ECHO_DELAY = $0001;
71 AL_ECHO_LRDELAY = $0002;
72 AL_ECHO_DAMPING = $0003;
73 AL_ECHO_FEEDBACK = $0004;
74 AL_ECHO_SPREAD = $0005;
75 (* Flanger effect parameters *)
76 AL_FLANGER_WAVEFORM = $0001;
77 AL_FLANGER_PHASE = $0002;
78 AL_FLANGER_RATE = $0003;
79 AL_FLANGER_DEPTH = $0004;
80 AL_FLANGER_FEEDBACK = $0005;
81 AL_FLANGER_DELAY = $0006;
82 (* Frequency shifter effect parameters *)
83 AL_FREQUENCY_SHIFTER_FREQUENCY = $0001;
84 AL_FREQUENCY_SHIFTER_LEFT_DIRECTION = $0002;
85 AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION = $0003;
86 (* Vocal morpher effect parameters *)
87 AL_VOCAL_MORPHER_PHONEMEA = $0001;
88 AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING = $0002;
89 AL_VOCAL_MORPHER_PHONEMEB = $0003;
90 AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING = $0004;
91 AL_VOCAL_MORPHER_WAVEFORM = $0005;
92 AL_VOCAL_MORPHER_RATE = $0006;
93 (* Pitchshifter effect parameters *)
94 AL_PITCH_SHIFTER_COARSE_TUNE = $0001;
95 AL_PITCH_SHIFTER_FINE_TUNE = $0002;
96 (* Ringmodulator effect parameters *)
97 AL_RING_MODULATOR_FREQUENCY = $0001;
98 AL_RING_MODULATOR_HIGHPASS_CUTOFF = $0002;
99 AL_RING_MODULATOR_WAVEFORM = $0003;
100 (* Autowah effect parameters *)
101 AL_AUTOWAH_ATTACK_TIME = $0001;
102 AL_AUTOWAH_RELEASE_TIME = $0002;
103 AL_AUTOWAH_RESONANCE = $0003;
104 AL_AUTOWAH_PEAK_GAIN = $0004;
105 (* Compressor effect parameters *)
106 AL_COMPRESSOR_ONOFF = $0001;
107 (* Equalizer effect parameters *)
108 AL_EQUALIZER_LOW_GAIN = $0001;
109 AL_EQUALIZER_LOW_CUTOFF = $0002;
110 AL_EQUALIZER_MID1_GAIN = $0003;
111 AL_EQUALIZER_MID1_CENTER = $0004;
112 AL_EQUALIZER_MID1_WIDTH = $0005;
113 AL_EQUALIZER_MID2_GAIN = $0006;
114 AL_EQUALIZER_MID2_CENTER = $0007;
115 AL_EQUALIZER_MID2_WIDTH = $0008;
116 AL_EQUALIZER_HIGH_GAIN = $0009;
117 AL_EQUALIZER_HIGH_CUTOFF = $000A;
118 (* Effect type *)
119 AL_EFFECT_FIRST_PARAMETER = $0000;
120 AL_EFFECT_LAST_PARAMETER = $8000;
121 AL_EFFECT_TYPE = $8001;
122 (* Effect types, used with the AL_EFFECT_TYPE property *)
123 AL_EFFECT_NULL = $0000;
124 AL_EFFECT_REVERB = $0001;
125 AL_EFFECT_CHORUS = $0002;
126 AL_EFFECT_DISTORTION = $0003;
127 AL_EFFECT_ECHO = $0004;
128 AL_EFFECT_FLANGER = $0005;
129 AL_EFFECT_FREQUENCY_SHIFTER = $0006;
130 AL_EFFECT_VOCAL_MORPHER = $0007;
131 AL_EFFECT_PITCH_SHIFTER = $0008;
132 AL_EFFECT_RING_MODULATOR = $0009;
133 AL_EFFECT_AUTOWAH = $000A;
134 AL_EFFECT_COMPRESSOR = $000B;
135 AL_EFFECT_EQUALIZER = $000C;
136 AL_EFFECT_EAXREVERB = $8000;
137 (* Auxiliary Effect Slot properties. *)
138 AL_EFFECTSLOT_EFFECT = $0001;
139 AL_EFFECTSLOT_GAIN = $0002;
140 AL_EFFECTSLOT_AUXILIARY_SEND_AUTO = $0003;
141 (* NULL Auxiliary Slot ID to disable a source send. *)
142 AL_EFFECTSLOT_NULL = $0000;
143 (* Filter properties. *)
144 (* Lowpass filter parameters *)
145 AL_LOWPASS_GAIN = $0001;
146 AL_LOWPASS_GAINHF = $0002;
147 (* Highpass filter parameters *)
148 AL_HIGHPASS_GAIN = $0001;
149 AL_HIGHPASS_GAINLF = $0002;
150 (* Bandpass filter parameters *)
151 AL_BANDPASS_GAIN = $0001;
152 AL_BANDPASS_GAINLF = $0002;
153 AL_BANDPASS_GAINHF = $0003;
154 (* Filter type *)
155 AL_FILTER_FIRST_PARAMETER = $0000;
156 AL_FILTER_LAST_PARAMETER = $8000;
157 AL_FILTER_TYPE = $8001;
158 (* Filter types, used with the AL_FILTER_TYPE property *)
159 AL_FILTER_NULL = $0000;
160 AL_FILTER_LOWPASS = $0001;
161 AL_FILTER_HIGHPASS = $0002;
162 AL_FILTER_BANDPASS = $0003;
164 const
165 (* Filter ranges and defaults. *)
166 (* Lowpass filter *)
167 AL_LOWPASS_MIN_GAIN = 0.0;
168 AL_LOWPASS_MAX_GAIN = 1.0;
169 AL_LOWPASS_DEFAULT_GAIN = 1.0;
170 AL_LOWPASS_MIN_GAINHF = 0.0;
171 AL_LOWPASS_MAX_GAINHF = 1.0;
172 AL_LOWPASS_DEFAULT_GAINHF = 1.0;
173 (* Highpass filter *)
174 AL_HIGHPASS_MIN_GAIN = 0.0;
175 AL_HIGHPASS_MAX_GAIN = 1.0;
176 AL_HIGHPASS_DEFAULT_GAIN = 1.0;
177 AL_HIGHPASS_MIN_GAINLF = 0.0;
178 AL_HIGHPASS_MAX_GAINLF = 1.0;
179 AL_HIGHPASS_DEFAULT_GAINLF = 1.0;
180 (* Bandpass filter *)
181 AL_BANDPASS_MIN_GAIN = 0.0;
182 AL_BANDPASS_MAX_GAIN = 1.0;
183 AL_BANDPASS_DEFAULT_GAIN = 1.0;
184 AL_BANDPASS_MIN_GAINHF = 0.0;
185 AL_BANDPASS_MAX_GAINHF = 1.0;
186 AL_BANDPASS_DEFAULT_GAINHF = 1.0;
187 AL_BANDPASS_MIN_GAINLF = 0.0;
188 AL_BANDPASS_MAX_GAINLF = 1.0;
189 AL_BANDPASS_DEFAULT_GAINLF = 1.0;
190 (* Effect parameter ranges and defaults. *)
191 (* Standard reverb effect *)
192 AL_REVERB_MIN_DENSITY = 0.0;
193 AL_REVERB_MAX_DENSITY = 1.0;
194 AL_REVERB_DEFAULT_DENSITY = 1.0;
195 AL_REVERB_MIN_DIFFUSION = 0.0;
196 AL_REVERB_MAX_DIFFUSION = 1.0;
197 AL_REVERB_DEFAULT_DIFFUSION = 1.0;
198 AL_REVERB_MIN_GAIN = 0.0;
199 AL_REVERB_MAX_GAIN = 1.0;
200 AL_REVERB_DEFAULT_GAIN = 0.32;
201 AL_REVERB_MIN_GAINHF = 0.0;
202 AL_REVERB_MAX_GAINHF = 1.0;
203 AL_REVERB_DEFAULT_GAINHF = 0.89;
204 AL_REVERB_MIN_DECAY_TIME = 0.1;
205 AL_REVERB_MAX_DECAY_TIME = 20.0;
206 AL_REVERB_DEFAULT_DECAY_TIME = 1.49;
207 AL_REVERB_MIN_DECAY_HFRATIO = 0.1;
208 AL_REVERB_MAX_DECAY_HFRATIO = 2.0;
209 AL_REVERB_DEFAULT_DECAY_HFRATIO = 0.83;
210 AL_REVERB_MIN_REFLECTIONS_GAIN = 0.0;
211 AL_REVERB_MAX_REFLECTIONS_GAIN = 3.16;
212 AL_REVERB_DEFAULT_REFLECTIONS_GAIN = 0.5;
213 AL_REVERB_MIN_REFLECTIONS_DELAY = 0.0;
214 AL_REVERB_MAX_REFLECTIONS_DELAY = 0.3;
215 AL_REVERB_DEFAULT_REFLECTIONS_DELAY = 0.7;
216 AL_REVERB_MIN_LATE_REVERB_GAIN = 0.0;
217 AL_REVERB_MAX_LATE_REVERB_GAIN = 10.0;
218 AL_REVERB_DEFAULT_LATE_REVERB_GAIN = 1.26;
219 AL_REVERB_MIN_LATE_REVERB_DELAY = 0.0;
220 AL_REVERB_MAX_LATE_REVERB_DELAY = 0.1;
221 AL_REVERB_DEFAULT_LATE_REVERB_DELAY = 0.9;
222 AL_REVERB_MIN_AIR_ABSORPTION_GAINHF = 0.892;
223 AL_REVERB_MAX_AIR_ABSORPTION_GAINHF = 1.0;
224 AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF = 0.994;
225 AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR = 0.0;
226 AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR = 10.0;
227 AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR = 0.0;
228 AL_REVERB_MIN_DECAY_HFLIMIT = AL_FALSE;
229 AL_REVERB_MAX_DECAY_HFLIMIT = AL_TRUE;
230 AL_REVERB_DEFAULT_DECAY_HFLIMIT = AL_TRUE;
231 (* EAX reverb effect *)
232 AL_EAXREVERB_MIN_DENSITY = 0.0;
233 AL_EAXREVERB_MAX_DENSITY = 1.0;
234 AL_EAXREVERB_DEFAULT_DENSITY = 1.0;
235 AL_EAXREVERB_MIN_DIFFUSION = 0.0;
236 AL_EAXREVERB_MAX_DIFFUSION = 1.0;
237 AL_EAXREVERB_DEFAULT_DIFFUSION = 1.0;
238 AL_EAXREVERB_MIN_GAIN = 0.0;
239 AL_EAXREVERB_MAX_GAIN = 1.0;
240 AL_EAXREVERB_DEFAULT_GAIN = 0.32;
241 AL_EAXREVERB_MIN_GAINHF = 0.0;
242 AL_EAXREVERB_MAX_GAINHF = 1.0;
243 AL_EAXREVERB_DEFAULT_GAINHF = 0.89;
244 AL_EAXREVERB_MIN_GAINLF = 0.0;
245 AL_EAXREVERB_MAX_GAINLF = 1.0;
246 AL_EAXREVERB_DEFAULT_GAINLF = 1.0;
247 AL_EAXREVERB_MIN_DECAY_TIME = 0.1;
248 AL_EAXREVERB_MAX_DECAY_TIME = 20.0;
249 AL_EAXREVERB_DEFAULT_DECAY_TIME = 1.49;
250 AL_EAXREVERB_MIN_DECAY_HFRATIO = 0.1;
251 AL_EAXREVERB_MAX_DECAY_HFRATIO = 2.0;
252 AL_EAXREVERB_DEFAULT_DECAY_HFRATIO = 0.83;
253 AL_EAXREVERB_MIN_DECAY_LFRATIO = 0.1;
254 AL_EAXREVERB_MAX_DECAY_LFRATIO = 2.0;
255 AL_EAXREVERB_DEFAULT_DECAY_LFRATIO = 1.0;
256 AL_EAXREVERB_MIN_REFLECTIONS_GAIN = 0.0;
257 AL_EAXREVERB_MAX_REFLECTIONS_GAIN = 3.16;
258 AL_EAXREVERB_DEFAULT_REFLECTIONS_GAIN = 0.5;
259 AL_EAXREVERB_MIN_REFLECTIONS_DELAY = 0.0;
260 AL_EAXREVERB_MAX_REFLECTIONS_DELAY = 0.3;
261 AL_EAXREVERB_DEFAULT_REFLECTIONS_DELAY = 0.7;
262 AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ = 0.0;
263 AL_EAXREVERB_MIN_LATE_REVERB_GAIN = 0.0;
264 AL_EAXREVERB_MAX_LATE_REVERB_GAIN = 10.0;
265 AL_EAXREVERB_DEFAULT_LATE_REVERB_GAIN = 1.26;
266 AL_EAXREVERB_MIN_LATE_REVERB_DELAY = 0.0;
267 AL_EAXREVERB_MAX_LATE_REVERB_DELAY = 0.1;
268 AL_EAXREVERB_DEFAULT_LATE_REVERB_DELAY = 0.9;
269 AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ = 0.0;
270 AL_EAXREVERB_MIN_ECHO_TIME = 0.3;
271 AL_EAXREVERB_MAX_ECHO_TIME = 0.25;
272 AL_EAXREVERB_DEFAULT_ECHO_TIME = 0.25;
273 AL_EAXREVERB_MIN_ECHO_DEPTH = 0.0;
274 AL_EAXREVERB_MAX_ECHO_DEPTH = 1.0;
275 AL_EAXREVERB_DEFAULT_ECHO_DEPTH = 0.0;
276 AL_EAXREVERB_MIN_MODULATION_TIME = 0.4;
277 AL_EAXREVERB_MAX_MODULATION_TIME = 4.0;
278 AL_EAXREVERB_DEFAULT_MODULATION_TIME = 0.25;
279 AL_EAXREVERB_MIN_MODULATION_DEPTH = 0.0;
280 AL_EAXREVERB_MAX_MODULATION_DEPTH = 1.0;
281 AL_EAXREVERB_DEFAULT_MODULATION_DEPTH = 0.0;
282 AL_EAXREVERB_MIN_AIR_ABSORPTION_GAINHF = 0.892;
283 AL_EAXREVERB_MAX_AIR_ABSORPTION_GAINHF = 1.0;
284 AL_EAXREVERB_DEFAULT_AIR_ABSORPTION_GAINHF = 0.994;
285 AL_EAXREVERB_MIN_HFREFERENCE = 1000.0;
286 AL_EAXREVERB_MAX_HFREFERENCE = 20000.0;
287 AL_EAXREVERB_DEFAULT_HFREFERENCE = 5000.0;
288 AL_EAXREVERB_MIN_LFREFERENCE = 20.0;
289 AL_EAXREVERB_MAX_LFREFERENCE = 1000.0;
290 AL_EAXREVERB_DEFAULT_LFREFERENCE = 250.0;
291 AL_EAXREVERB_MIN_ROOM_ROLLOFF_FACTOR = 0.0;
292 AL_EAXREVERB_MAX_ROOM_ROLLOFF_FACTOR = 10.0;
293 AL_EAXREVERB_DEFAULT_ROOM_ROLLOFF_FACTOR = 0.0;
294 AL_EAXREVERB_MIN_DECAY_HFLIMIT = AL_FALSE;
295 AL_EAXREVERB_MAX_DECAY_HFLIMIT = AL_TRUE;
296 AL_EAXREVERB_DEFAULT_DECAY_HFLIMIT = AL_TRUE;
297 (* Chorus effect *)
298 AL_CHORUS_WAVEFORM_SINUSOID = 0;
299 AL_CHORUS_WAVEFORM_TRIANGLE = 1;
300 AL_CHORUS_MIN_WAVEFORM = 0;
301 AL_CHORUS_MAX_WAVEFORM = 1;
302 AL_CHORUS_DEFAULT_WAVEFORM = 1;
303 AL_CHORUS_MIN_PHASE = -180;
304 AL_CHORUS_MAX_PHASE = 180;
305 AL_CHORUS_DEFAULT_PHASE = 90;
306 AL_CHORUS_MIN_RATE = 0.0;
307 AL_CHORUS_MAX_RATE = 10.0;
308 AL_CHORUS_DEFAULT_RATE = 1.1;
309 AL_CHORUS_MIN_DEPTH = 0.0;
310 AL_CHORUS_MAX_DEPTH = 1.0;
311 AL_CHORUS_DEFAULT_DEPTH = 0.1;
312 AL_CHORUS_MIN_FEEDBACK = -1.0;
313 AL_CHORUS_MAX_FEEDBACK = 1.0;
314 AL_CHORUS_DEFAULT_FEEDBACK = 0.25;
315 AL_CHORUS_MIN_DELAY = 0.0;
316 AL_CHORUS_MAX_DELAY = 0.016;
317 AL_CHORUS_DEFAULT_DELAY = 0.016;
318 (* Distortion effect *)
319 AL_DISTORTION_MIN_EDGE = 0.0;
320 AL_DISTORTION_MAX_EDGE = 1.0;
321 AL_DISTORTION_DEFAULT_EDGE = 0.2;
322 AL_DISTORTION_MIN_GAIN = 0.1;
323 AL_DISTORTION_MAX_GAIN = 1.0;
324 AL_DISTORTION_DEFAULT_GAIN = 0.5;
325 AL_DISTORTION_MIN_LOWPASS_CUTOFF = 80.0;
326 AL_DISTORTION_MAX_LOWPASS_CUTOFF = 24000.0;
327 AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF = 8000.0;
328 AL_DISTORTION_MIN_EQCENTER = 80.0;
329 AL_DISTORTION_MAX_EQCENTER = 24000.0;
330 AL_DISTORTION_DEFAULT_EQCENTER = 3600.0;
331 AL_DISTORTION_MIN_EQBANDWIDTH = 80.0;
332 AL_DISTORTION_MAX_EQBANDWIDTH = 24000.0;
333 AL_DISTORTION_DEFAULT_EQBANDWIDTH = 3600.0;
334 (* Echo effect *)
335 AL_ECHO_MIN_DELAY = 0.0;
336 AL_ECHO_MAX_DELAY = 0.207;
337 AL_ECHO_DEFAULT_DELAY = 0.1;
338 AL_ECHO_MIN_LRDELAY = 0.0;
339 AL_ECHO_MAX_LRDELAY = 0.404;
340 AL_ECHO_DEFAULT_LRDELAY = 0.1;
341 AL_ECHO_MIN_DAMPING = 0.0;
342 AL_ECHO_MAX_DAMPING = 0.99;
343 AL_ECHO_DEFAULT_DAMPING = 0.5;
344 AL_ECHO_MIN_FEEDBACK = 0.0;
345 AL_ECHO_MAX_FEEDBACK = 1.0;
346 AL_ECHO_DEFAULT_FEEDBACK = 0.5;
347 AL_ECHO_MIN_SPREAD = -1.0;
348 AL_ECHO_MAX_SPREAD = 1.0;
349 AL_ECHO_DEFAULT_SPREAD = -1.0;
350 (* Flanger effect *)
351 AL_FLANGER_WAVEFORM_SINUSOID = 0;
352 AL_FLANGER_WAVEFORM_TRIANGLE = 1;
353 AL_FLANGER_MIN_WAVEFORM = 0;
354 AL_FLANGER_MAX_WAVEFORM = 1;
355 AL_FLANGER_DEFAULT_WAVEFORM = 1;
356 AL_FLANGER_MIN_PHASE = -180;
357 AL_FLANGER_MAX_PHASE = 180;
358 AL_FLANGER_DEFAULT_PHASE = 0;
359 AL_FLANGER_MIN_RATE = 0.0;
360 AL_FLANGER_MAX_RATE = 10.0;
361 AL_FLANGER_DEFAULT_RATE = 0.27;
362 AL_FLANGER_MIN_DEPTH = 0.0;
363 AL_FLANGER_MAX_DEPTH = 1.0;
364 AL_FLANGER_DEFAULT_DEPTH = 1.0;
365 AL_FLANGER_MIN_FEEDBACK = -1.0;
366 AL_FLANGER_MAX_FEEDBACK = 1.0;
367 AL_FLANGER_DEFAULT_FEEDBACK = -0.5;
368 AL_FLANGER_MIN_DELAY = 0.0;
369 AL_FLANGER_MAX_DELAY = 0.4;
370 AL_FLANGER_DEFAULT_DELAY = 0.2;
371 (* Frequency shifter effect *)
372 AL_FREQUENCY_SHIFTER_MIN_FREQUENCY = 0.0;
373 AL_FREQUENCY_SHIFTER_MAX_FREQUENCY = 24000.0;
374 AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY = 0.0;
375 AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION = 0;
376 AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION = 2;
377 AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION = 0;
378 AL_FREQUENCY_SHIFTER_DIRECTION_DOWN = 0;
379 AL_FREQUENCY_SHIFTER_DIRECTION_UP = 1;
380 AL_FREQUENCY_SHIFTER_DIRECTION_OFF = 2;
381 AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION = 0;
382 AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION = 2;
383 AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION = 0;
384 (* Vocal morpher effect *)
385 AL_VOCAL_MORPHER_MIN_PHONEMEA = 0;
386 AL_VOCAL_MORPHER_MAX_PHONEMEA = 29;
387 AL_VOCAL_MORPHER_DEFAULT_PHONEMEA = 0;
388 AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING = -24;
389 AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING = 24;
390 AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING = 0;
391 AL_VOCAL_MORPHER_MIN_PHONEMEB = 0;
392 AL_VOCAL_MORPHER_MAX_PHONEMEB = 29;
393 AL_VOCAL_MORPHER_DEFAULT_PHONEMEB = 10;
394 AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING = -24;
395 AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING = 24;
396 AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING = 0;
397 AL_VOCAL_MORPHER_PHONEME_A = 0;
398 AL_VOCAL_MORPHER_PHONEME_E = 1;
399 AL_VOCAL_MORPHER_PHONEME_I = 2;
400 AL_VOCAL_MORPHER_PHONEME_O = 3;
401 AL_VOCAL_MORPHER_PHONEME_U = 4;
402 AL_VOCAL_MORPHER_PHONEME_AA = 5;
403 AL_VOCAL_MORPHER_PHONEME_AE = 6;
404 AL_VOCAL_MORPHER_PHONEME_AH = 7;
405 AL_VOCAL_MORPHER_PHONEME_AO = 8;
406 AL_VOCAL_MORPHER_PHONEME_EH = 9;
407 AL_VOCAL_MORPHER_PHONEME_ER = 10;
408 AL_VOCAL_MORPHER_PHONEME_IH = 11;
409 AL_VOCAL_MORPHER_PHONEME_IY = 12;
410 AL_VOCAL_MORPHER_PHONEME_UH = 13;
411 AL_VOCAL_MORPHER_PHONEME_UW = 14;
412 AL_VOCAL_MORPHER_PHONEME_B = 15;
413 AL_VOCAL_MORPHER_PHONEME_D = 16;
414 AL_VOCAL_MORPHER_PHONEME_F = 17;
415 AL_VOCAL_MORPHER_PHONEME_G = 18;
416 AL_VOCAL_MORPHER_PHONEME_J = 19;
417 AL_VOCAL_MORPHER_PHONEME_K = 20;
418 AL_VOCAL_MORPHER_PHONEME_L = 21;
419 AL_VOCAL_MORPHER_PHONEME_M = 22;
420 AL_VOCAL_MORPHER_PHONEME_N = 23;
421 AL_VOCAL_MORPHER_PHONEME_P = 24;
422 AL_VOCAL_MORPHER_PHONEME_R = 25;
423 AL_VOCAL_MORPHER_PHONEME_S = 26;
424 AL_VOCAL_MORPHER_PHONEME_T = 27;
425 AL_VOCAL_MORPHER_PHONEME_V = 28;
426 AL_VOCAL_MORPHER_PHONEME_Z = 29;
427 AL_VOCAL_MORPHER_WAVEFORM_SINUSOID = 0;
428 AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE = 1;
429 AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH = 2;
430 AL_VOCAL_MORPHER_MIN_WAVEFORM = 0;
431 AL_VOCAL_MORPHER_MAX_WAVEFORM = 2;
432 AL_VOCAL_MORPHER_DEFAULT_WAVEFORM = 0;
433 AL_VOCAL_MORPHER_MIN_RATE = 0.0;
434 AL_VOCAL_MORPHER_MAX_RATE = 10.0;
435 AL_VOCAL_MORPHER_DEFAULT_RATE = 1.41;
436 (* Pitch shifter effect *)
437 AL_PITCH_SHIFTER_MIN_COARSE_TUNE = -12;
438 AL_PITCH_SHIFTER_MAX_COARSE_TUNE = 12;
439 AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE = 12;
440 AL_PITCH_SHIFTER_MIN_FINE_TUNE = -50;
441 AL_PITCH_SHIFTER_MAX_FINE_TUNE = 50;
442 AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE = 0;
443 (* Ring modulator effect *)
444 AL_RING_MODULATOR_MIN_FREQUENCY = 0.0;
445 AL_RING_MODULATOR_MAX_FREQUENCY = 8000.0;
446 AL_RING_MODULATOR_DEFAULT_FREQUENCY = 440.0;
447 AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF = 0.0;
448 AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF = 24000.0;
449 AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF = 800.0;
450 AL_RING_MODULATOR_SINUSOID = 0;
451 AL_RING_MODULATOR_SAWTOOTH = 1;
452 AL_RING_MODULATOR_SQUARE = 2;
453 AL_RING_MODULATOR_MIN_WAVEFORM = 0;
454 AL_RING_MODULATOR_MAX_WAVEFORM = 2;
455 AL_RING_MODULATOR_DEFAULT_WAVEFORM = 0;
456 (* Autowah effect *)
457 AL_AUTOWAH_MIN_ATTACK_TIME = 0.1;
458 AL_AUTOWAH_MAX_ATTACK_TIME = 1.0;
459 AL_AUTOWAH_DEFAULT_ATTACK_TIME = 0.6;
460 AL_AUTOWAH_MIN_RELEASE_TIME = 0.1;
461 AL_AUTOWAH_MAX_RELEASE_TIME = 1.0;
462 AL_AUTOWAH_DEFAULT_RELEASE_TIME = 0.6;
463 AL_AUTOWAH_MIN_RESONANCE = 2.0;
464 AL_AUTOWAH_MAX_RESONANCE = 1000.0;
465 AL_AUTOWAH_DEFAULT_RESONANCE = 1000.0;
466 AL_AUTOWAH_MIN_PEAK_GAIN = 0.3;
467 AL_AUTOWAH_MAX_PEAK_GAIN = 31621.0;
468 AL_AUTOWAH_DEFAULT_PEAK_GAIN = 11.22;
469 (* Compressor effect *)
470 AL_COMPRESSOR_MIN_ONOFF = 0;
471 AL_COMPRESSOR_MAX_ONOFF = 1;
472 AL_COMPRESSOR_DEFAULT_ONOFF = 1;
473 (* Equalizer effect *)
474 AL_EQUALIZER_MIN_LOW_GAIN = 0.126;
475 AL_EQUALIZER_MAX_LOW_GAIN = 7.943;
476 AL_EQUALIZER_DEFAULT_LOW_GAIN = 1.0;
477 AL_EQUALIZER_MIN_LOW_CUTOFF = 50.0;
478 AL_EQUALIZER_MAX_LOW_CUTOFF = 800.0;
479 AL_EQUALIZER_DEFAULT_LOW_CUTOFF = 200.0;
480 AL_EQUALIZER_MIN_MID1_GAIN = 0.126;
481 AL_EQUALIZER_MAX_MID1_GAIN = 7.943;
482 AL_EQUALIZER_DEFAULT_MID1_GAIN = 1.0;
483 AL_EQUALIZER_MIN_MID1_CENTER = 200.0;
484 AL_EQUALIZER_MAX_MID1_CENTER = 3000.0;
485 AL_EQUALIZER_DEFAULT_MID1_CENTER = 500.0;
486 AL_EQUALIZER_MIN_MID1_WIDTH = 0.1;
487 AL_EQUALIZER_MAX_MID1_WIDTH = 1.0;
488 AL_EQUALIZER_DEFAULT_MID1_WIDTH = 1.0;
489 AL_EQUALIZER_MIN_MID2_GAIN = 0.126;
490 AL_EQUALIZER_MAX_MID2_GAIN = 7.943;
491 AL_EQUALIZER_DEFAULT_MID2_GAIN = 1.0;
492 AL_EQUALIZER_MIN_MID2_CENTER = 1000.0;
493 AL_EQUALIZER_MAX_MID2_CENTER = 8000.0;
494 AL_EQUALIZER_DEFAULT_MID2_CENTER = 3000.0;
495 AL_EQUALIZER_MIN_MID2_WIDTH = 0.1;
496 AL_EQUALIZER_MAX_MID2_WIDTH = 1.0;
497 AL_EQUALIZER_DEFAULT_MID2_WIDTH = 1.0;
498 AL_EQUALIZER_MIN_HIGH_GAIN = 0.126;
499 AL_EQUALIZER_MAX_HIGH_GAIN = 7.943;
500 AL_EQUALIZER_DEFAULT_HIGH_GAIN = 1.0;
501 AL_EQUALIZER_MIN_HIGH_CUTOFF = 4000.0;
502 AL_EQUALIZER_MAX_HIGH_CUTOFF = 16000.0;
503 AL_EQUALIZER_DEFAULT_HIGH_CUTOFF = 6000.0;
504 (* Source parameter value ranges and defaults. *)
505 AL_MIN_AIR_ABSORPTION_FACTOR = 0.0;
506 AL_MAX_AIR_ABSORPTION_FACTOR = 10.0;
507 AL_DEFAULT_AIR_ABSORPTION_FACTOR = 0.0;
508 AL_MIN_ROOM_ROLLOFF_FACTOR = 0.0;
509 AL_MAX_ROOM_ROLLOFF_FACTOR = 10.0;
510 AL_DEFAULT_ROOM_ROLLOFF_FACTOR = 0.0;
511 AL_MIN_CONE_OUTER_GAINHF = 0.0;
512 AL_MAX_CONE_OUTER_GAINHF = 1.0;
513 AL_DEFAULT_CONE_OUTER_GAINHF = 1.0;
514 AL_MIN_DIRECT_FILTER_GAINHF_AUTO = AL_FALSE;
515 AL_MAX_DIRECT_FILTER_GAINHF_AUTO = AL_TRUE;
516 AL_DEFAULT_DIRECT_FILTER_GAINHF_AUTO = AL_TRUE;
517 AL_MIN_AUXILIARY_SEND_FILTER_GAIN_AUTO = AL_FALSE;
518 AL_MAX_AUXILIARY_SEND_FILTER_GAIN_AUTO = AL_TRUE;
519 AL_DEFAULT_AUXILIARY_SEND_FILTER_GAIN_AUTO = AL_TRUE;
520 AL_MIN_AUXILIARY_SEND_FILTER_GAINHF_AUTO = AL_FALSE;
521 AL_MAX_AUXILIARY_SEND_FILTER_GAINHF_AUTO = AL_TRUE;
522 AL_DEFAULT_AUXILIARY_SEND_FILTER_GAINHF_AUTO = AL_TRUE;
523 (* Listener parameter value ranges and defaults. *)
524 AL_MIN_METERS_PER_UNIT = 0.0; // FIXME: was FLT_MIN
525 AL_MAX_METERS_PER_UNIT = 1e10; // FIXME: was FLT_MAX
526 AL_DEFAULT_METERS_PER_UNIT = 1.0;
528 type
529 EFXEAXREVERBPROPERTIES = record
530 flDensity: ALfloat;
531 flDiffusion: ALfloat;
532 flGain: ALfloat;
533 flGainHF: ALfloat;
534 flGainLF: ALfloat;
535 flDecayTime: ALfloat;
536 flDecayHFRatio: ALfloat;
537 flDecayLFRatio: ALfloat;
538 flReflectionsGain: ALfloat;
539 flReflectionsDelay: ALfloat;
540 flReflectionsPan: array [0..2] of ALfloat;
541 flLateReverbGain: ALfloat;
542 flLateReverbDelay: ALfloat;
543 flLateReverbPan: array [0..2] of ALfloat;
544 flEchoTime: ALfloat;
545 flEchoDepth: ALfloat;
546 flModulationTime: ALfloat;
547 flModulationDepth: ALfloat;
548 flAirAbsorptionGainHF: ALfloat;
549 flHFReference: ALfloat;
550 flLFReference: ALfloat;
551 flRoomRolloffFactor: ALfloat;
552 iDecayHFLimit: ALint;
553 end;
554 LPEFXEAXREVERBPROPERTIES = ^EFXEAXREVERBPROPERTIES;
556 procedure alGenEffects(n: ALsizei; effects: pALuint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
558 procedure alDeleteEffects(n: ALsizei; effects: pALuint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
560 function alIsEffect(effect: ALuint): ALboolean; cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
562 procedure alEffecti(effect: ALuint; param: ALenum; iValue: ALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
564 procedure alEffectiv(effect: ALuint; param: ALenum; piValues: pALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
566 procedure alEffectf(effect: ALuint; param: ALenum; flValue: ALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
568 procedure alEffectfv(effect: ALuint; param: ALenum; pflValues: pALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
570 procedure alGetEffecti(effect: ALuint; param: ALenum; piValue: pALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
572 procedure alGetEffectiv(effect: ALuint; param: ALenum; piValues: pALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
574 procedure alGetEffectf(effect: ALuint; param: ALenum; pflValue: pALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
576 procedure alGetEffectfv(effect: ALuint; param: ALenum; pflValues: pALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
578 procedure alGenFilters(n: ALsizei; filters: pALuint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
580 procedure alDeleteFilters(n: ALsizei; filters: pALuint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
582 function alIsFilter(filter: ALuint): ALboolean; cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
584 procedure alFilteri(filter: ALuint; param: ALenum; iValue: ALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
586 procedure alFilteriv(filter: ALuint; param: ALenum; piValues: pALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
588 procedure alFilterf(filter: ALuint; param: ALenum; flValue: ALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
590 procedure alFilterfv(filter: ALuint; param: ALenum; pflValues: pALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
592 procedure alGetFilteri(filter: ALuint; param: ALenum; piValue: pALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
594 procedure alGetFilteriv(filter: ALuint; param: ALenum; piValues: pALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
596 procedure alGetFilterf(filter: ALuint; param: ALenum; pflValue: pALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
598 procedure alGetFilterfv(filter: ALuint; param: ALenum; pflValues: pALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
600 procedure alGenAuxiliaryEffectSlots(n: ALsizei; effectslots: pALuint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
602 procedure alDeleteAuxiliaryEffectSlots(n: ALsizei; effectslots: pALuint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
604 function alIsAuxiliaryEffectSlot(effectslot: ALuint): ALboolean; cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
606 procedure alAuxiliaryEffectSloti(effectslot: ALuint; param: ALenum; iValue: ALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
608 procedure alAuxiliaryEffectSlotiv(effectslot: ALuint; param: ALenum; piValues: pALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
610 procedure alAuxiliaryEffectSlotf(effectslot: ALuint; param: ALenum; flValue: ALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
612 procedure alAuxiliaryEffectSlotfv(effectslot: ALuint; param: ALenum; pflValues: pALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
614 procedure alGetAuxiliaryEffectSloti(effectslot: ALuint; param: ALenum; piValue: pALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
616 procedure alGetAuxiliaryEffectSlotiv(effectslot: ALuint; param: ALenum; piValues: pALint); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
618 procedure alGetAuxiliaryEffectSlotf(effectslot: ALuint; param: ALenum; pflValue: pALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
620 procedure alGetAuxiliaryEffectSlotfv(effectslot: ALuint; param: ALenum; pflValues: pALfloat); cdecl; external {$IFDEF AL_DYNAMIC}openallib{$ENDIF};
623 type
624 /* Effect object function types. */
625 typedef void (AL_APIENTRY *LPALGENEFFECTS)(ALsizei, ALuint*);
626 typedef void (AL_APIENTRY *LPALDELETEEFFECTS)(ALsizei, const ALuint*);
627 typedef ALboolean (AL_APIENTRY *LPALISEFFECT)(ALuint);
628 typedef void (AL_APIENTRY *LPALEFFECTI)(ALuint, ALenum, ALint);
629 typedef void (AL_APIENTRY *LPALEFFECTIV)(ALuint, ALenum, const ALint*);
630 typedef void (AL_APIENTRY *LPALEFFECTF)(ALuint, ALenum, ALfloat);
631 typedef void (AL_APIENTRY *LPALEFFECTFV)(ALuint, ALenum, const ALfloat*);
632 typedef void (AL_APIENTRY *LPALGETEFFECTI)(ALuint, ALenum, ALint*);
633 typedef void (AL_APIENTRY *LPALGETEFFECTIV)(ALuint, ALenum, ALint*);
634 typedef void (AL_APIENTRY *LPALGETEFFECTF)(ALuint, ALenum, ALfloat*);
635 typedef void (AL_APIENTRY *LPALGETEFFECTFV)(ALuint, ALenum, ALfloat*);
637 /* Filter object function types. */
638 typedef void (AL_APIENTRY *LPALGENFILTERS)(ALsizei, ALuint*);
639 typedef void (AL_APIENTRY *LPALDELETEFILTERS)(ALsizei, const ALuint*);
640 typedef ALboolean (AL_APIENTRY *LPALISFILTER)(ALuint);
641 typedef void (AL_APIENTRY *LPALFILTERI)(ALuint, ALenum, ALint);
642 typedef void (AL_APIENTRY *LPALFILTERIV)(ALuint, ALenum, const ALint*);
643 typedef void (AL_APIENTRY *LPALFILTERF)(ALuint, ALenum, ALfloat);
644 typedef void (AL_APIENTRY *LPALFILTERFV)(ALuint, ALenum, const ALfloat*);
645 typedef void (AL_APIENTRY *LPALGETFILTERI)(ALuint, ALenum, ALint*);
646 typedef void (AL_APIENTRY *LPALGETFILTERIV)(ALuint, ALenum, ALint*);
647 typedef void (AL_APIENTRY *LPALGETFILTERF)(ALuint, ALenum, ALfloat*);
648 typedef void (AL_APIENTRY *LPALGETFILTERFV)(ALuint, ALenum, ALfloat*);
650 /* Auxiliary Effect Slot object function types. */
651 typedef void (AL_APIENTRY *LPALGENAUXILIARYEFFECTSLOTS)(ALsizei, ALuint*);
652 typedef void (AL_APIENTRY *LPALDELETEAUXILIARYEFFECTSLOTS)(ALsizei, const ALuint*);
653 typedef ALboolean (AL_APIENTRY *LPALISAUXILIARYEFFECTSLOT)(ALuint);
654 typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTI)(ALuint, ALenum, ALint);
655 typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTIV)(ALuint, ALenum, const ALint*);
656 typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTF)(ALuint, ALenum, ALfloat);
657 typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTFV)(ALuint, ALenum, const ALfloat*);
658 typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTI)(ALuint, ALenum, ALint*);
659 typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTIV)(ALuint, ALenum, ALint*);
660 typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTF)(ALuint, ALenum, ALfloat*);
661 typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTFV)(ALuint, ALenum, ALfloat*);