Mercurial > audio-send
comparison OpenAL32/Include/alEffect.h @ 0:f9476ff7637e
initial forking of open-al to create multiple listeners
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Tue, 25 Oct 2011 13:02:31 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f9476ff7637e |
---|---|
1 #ifndef _AL_EFFECT_H_ | |
2 #define _AL_EFFECT_H_ | |
3 | |
4 #include "AL/al.h" | |
5 | |
6 #ifdef __cplusplus | |
7 extern "C" { | |
8 #endif | |
9 | |
10 enum { | |
11 EAXREVERB = 0, | |
12 REVERB, | |
13 ECHO, | |
14 MODULATOR, | |
15 DEDICATED, | |
16 | |
17 MAX_EFFECTS | |
18 }; | |
19 extern ALboolean DisabledEffects[MAX_EFFECTS]; | |
20 | |
21 extern ALfloat ReverbBoost; | |
22 extern ALboolean EmulateEAXReverb; | |
23 | |
24 typedef struct ALeffect | |
25 { | |
26 // Effect type (AL_EFFECT_NULL, ...) | |
27 ALenum type; | |
28 | |
29 union { | |
30 struct { | |
31 // Shared Reverb Properties | |
32 ALfloat Density; | |
33 ALfloat Diffusion; | |
34 ALfloat Gain; | |
35 ALfloat GainHF; | |
36 ALfloat DecayTime; | |
37 ALfloat DecayHFRatio; | |
38 ALfloat ReflectionsGain; | |
39 ALfloat ReflectionsDelay; | |
40 ALfloat LateReverbGain; | |
41 ALfloat LateReverbDelay; | |
42 ALfloat AirAbsorptionGainHF; | |
43 ALfloat RoomRolloffFactor; | |
44 ALboolean DecayHFLimit; | |
45 | |
46 // Additional EAX Reverb Properties | |
47 ALfloat GainLF; | |
48 ALfloat DecayLFRatio; | |
49 ALfloat ReflectionsPan[3]; | |
50 ALfloat LateReverbPan[3]; | |
51 ALfloat EchoTime; | |
52 ALfloat EchoDepth; | |
53 ALfloat ModulationTime; | |
54 ALfloat ModulationDepth; | |
55 ALfloat HFReference; | |
56 ALfloat LFReference; | |
57 } Reverb; | |
58 | |
59 struct { | |
60 ALfloat Delay; | |
61 ALfloat LRDelay; | |
62 | |
63 ALfloat Damping; | |
64 ALfloat Feedback; | |
65 | |
66 ALfloat Spread; | |
67 } Echo; | |
68 | |
69 struct { | |
70 ALfloat Frequency; | |
71 ALfloat HighPassCutoff; | |
72 ALint Waveform; | |
73 } Modulator; | |
74 | |
75 struct { | |
76 ALfloat Gain; | |
77 } Dedicated; | |
78 } Params; | |
79 | |
80 // Index to itself | |
81 ALuint effect; | |
82 } ALeffect; | |
83 | |
84 static __inline ALboolean IsReverbEffect(ALenum type) | |
85 { return type == AL_EFFECT_REVERB || type == AL_EFFECT_EAXREVERB; } | |
86 | |
87 ALvoid ReleaseALEffects(ALCdevice *device); | |
88 | |
89 #ifdef __cplusplus | |
90 } | |
91 #endif | |
92 | |
93 #endif |