7 #include "cAudioDefines.h"
9 #if CAUDIO_EFX_ENABLED == 1
14 #include <efx-creative.h>
20 #define AL_FILTER_TYPE 0x8001
21 #define AL_EFFECT_TYPE 0x8001
22 #define AL_FILTER_NULL 0x0000
23 #define AL_FILTER_LOWPASS 0x0001
24 #define AL_FILTER_HIGHPASS 0x0002
25 #define AL_FILTER_BANDPASS 0x0003
26 #define AL_EFFECT_NULL 0x0000
27 #define AL_EFFECT_EAXREVERB 0x8000
28 #define AL_EFFECT_REVERB 0x0001
29 #define AL_EFFECT_CHORUS 0x0002
30 #define AL_EFFECT_DISTORTION 0x0003
31 #define AL_EFFECT_ECHO 0x0004
32 #define AL_EFFECT_FLANGER 0x0005
33 #define AL_EFFECT_FREQUENCY_SHIFTER 0x0006
34 #define AL_EFFECT_VOCAL_MORPHER 0x0007
35 #define AL_EFFECT_PITCH_SHIFTER 0x0008
36 #define AL_EFFECT_RING_MODULATOR 0x0009
37 #define AL_EFFECT_AUTOWAH 0x000A
38 #define AL_EFFECT_COMPRESSOR 0x000B
39 #define AL_EFFECT_EQUALIZER 0x000C
40 #define ALC_EFX_MAJOR_VERSION 0x20001
41 #define ALC_EFX_MINOR_VERSION 0x20002
42 #define ALC_MAX_AUXILIARY_SENDS 0x20003
53 alDeleteEffects = NULL;
65 alDeleteFilters = NULL;
76 alGenAuxiliaryEffectSlots = NULL;
77 alDeleteAuxiliaryEffectSlots = NULL;
78 alIsAuxiliaryEffectSlot = NULL;
79 alAuxiliaryEffectSloti = NULL;
80 alAuxiliaryEffectSlotiv = NULL;
81 alAuxiliaryEffectSlotf = NULL;
82 alAuxiliaryEffectSlotfv = NULL;
83 alGetAuxiliaryEffectSloti = NULL;
84 alGetAuxiliaryEffectSlotiv = NULL;
85 alGetAuxiliaryEffectSlotf = NULL;
86 alGetAuxiliaryEffectSlotfv = NULL;
92 LPALGENEFFECTS alGenEffects;
93 LPALDELETEEFFECTS alDeleteEffects;
94 LPALISEFFECT alIsEffect;
95 LPALEFFECTI alEffecti;
96 LPALEFFECTIV alEffectiv;
97 LPALEFFECTF alEffectf;
98 LPALEFFECTFV alEffectfv;
99 LPALGETEFFECTI alGetEffecti;
100 LPALGETEFFECTIV alGetEffectiv;
101 LPALGETEFFECTF alGetEffectf;
102 LPALGETEFFECTFV alGetEffectfv;
105 LPALGENFILTERS alGenFilters;
106 LPALDELETEFILTERS alDeleteFilters;
107 LPALISFILTER alIsFilter;
108 LPALFILTERI alFilteri;
109 LPALFILTERIV alFilteriv;
110 LPALFILTERF alFilterf;
111 LPALFILTERFV alFilterfv;
112 LPALGETFILTERI alGetFilteri;
113 LPALGETFILTERIV alGetFilteriv;
114 LPALGETFILTERF alGetFilterf;
115 LPALGETFILTERFV alGetFilterfv;
118 LPALGENAUXILIARYEFFECTSLOTS alGenAuxiliaryEffectSlots;
119 LPALDELETEAUXILIARYEFFECTSLOTS alDeleteAuxiliaryEffectSlots;
120 LPALISAUXILIARYEFFECTSLOT alIsAuxiliaryEffectSlot;
121 LPALAUXILIARYEFFECTSLOTI alAuxiliaryEffectSloti;
122 LPALAUXILIARYEFFECTSLOTIV alAuxiliaryEffectSlotiv;
123 LPALAUXILIARYEFFECTSLOTF alAuxiliaryEffectSlotf;
124 LPALAUXILIARYEFFECTSLOTFV alAuxiliaryEffectSlotfv;
125 LPALGETAUXILIARYEFFECTSLOTI alGetAuxiliaryEffectSloti;
126 LPALGETAUXILIARYEFFECTSLOTIV alGetAuxiliaryEffectSlotiv;
127 LPALGETAUXILIARYEFFECTSLOTF alGetAuxiliaryEffectSlotf;
128 LPALGETAUXILIARYEFFECTSLOTFV alGetAuxiliaryEffectSlotfv;
134 bool CheckEFXSupport(ALCdevice* device)
137 if (alcIsExtensionPresent(device,
"ALC_EXT_EFX"))
140 alGenEffects = (LPALGENEFFECTS)alGetProcAddress(
"alGenEffects");
141 alDeleteEffects = (LPALDELETEEFFECTS )alGetProcAddress(
"alDeleteEffects");
142 alIsEffect = (LPALISEFFECT )alGetProcAddress(
"alIsEffect");
143 alEffecti = (LPALEFFECTI)alGetProcAddress(
"alEffecti");
144 alEffectiv = (LPALEFFECTIV)alGetProcAddress(
"alEffectiv");
145 alEffectf = (LPALEFFECTF)alGetProcAddress(
"alEffectf");
146 alEffectfv = (LPALEFFECTFV)alGetProcAddress(
"alEffectfv");
147 alGetEffecti = (LPALGETEFFECTI)alGetProcAddress(
"alGetEffecti");
148 alGetEffectiv = (LPALGETEFFECTIV)alGetProcAddress(
"alGetEffectiv");
149 alGetEffectf = (LPALGETEFFECTF)alGetProcAddress(
"alGetEffectf");
150 alGetEffectfv = (LPALGETEFFECTFV)alGetProcAddress(
"alGetEffectfv");
151 alGenFilters = (LPALGENFILTERS)alGetProcAddress(
"alGenFilters");
152 alDeleteFilters = (LPALDELETEFILTERS)alGetProcAddress(
"alDeleteFilters");
153 alIsFilter = (LPALISFILTER)alGetProcAddress(
"alIsFilter");
154 alFilteri = (LPALFILTERI)alGetProcAddress(
"alFilteri");
155 alFilteriv = (LPALFILTERIV)alGetProcAddress(
"alFilteriv");
156 alFilterf = (LPALFILTERF)alGetProcAddress(
"alFilterf");
157 alFilterfv = (LPALFILTERFV)alGetProcAddress(
"alFilterfv");
158 alGetFilteri = (LPALGETFILTERI )alGetProcAddress(
"alGetFilteri");
159 alGetFilteriv= (LPALGETFILTERIV )alGetProcAddress(
"alGetFilteriv");
160 alGetFilterf = (LPALGETFILTERF )alGetProcAddress(
"alGetFilterf");
161 alGetFilterfv= (LPALGETFILTERFV )alGetProcAddress(
"alGetFilterfv");
162 alGenAuxiliaryEffectSlots = (LPALGENAUXILIARYEFFECTSLOTS)alGetProcAddress(
"alGenAuxiliaryEffectSlots");
163 alDeleteAuxiliaryEffectSlots = (LPALDELETEAUXILIARYEFFECTSLOTS)alGetProcAddress(
"alDeleteAuxiliaryEffectSlots");
164 alIsAuxiliaryEffectSlot = (LPALISAUXILIARYEFFECTSLOT)alGetProcAddress(
"alIsAuxiliaryEffectSlot");
165 alAuxiliaryEffectSloti = (LPALAUXILIARYEFFECTSLOTI)alGetProcAddress(
"alAuxiliaryEffectSloti");
166 alAuxiliaryEffectSlotiv = (LPALAUXILIARYEFFECTSLOTIV)alGetProcAddress(
"alAuxiliaryEffectSlotiv");
167 alAuxiliaryEffectSlotf = (LPALAUXILIARYEFFECTSLOTF)alGetProcAddress(
"alAuxiliaryEffectSlotf");
168 alAuxiliaryEffectSlotfv = (LPALAUXILIARYEFFECTSLOTFV)alGetProcAddress(
"alAuxiliaryEffectSlotfv");
169 alGetAuxiliaryEffectSloti = (LPALGETAUXILIARYEFFECTSLOTI)alGetProcAddress(
"alGetAuxiliaryEffectSloti");
170 alGetAuxiliaryEffectSlotiv = (LPALGETAUXILIARYEFFECTSLOTIV)alGetProcAddress(
"alGetAuxiliaryEffectSlotiv");
171 alGetAuxiliaryEffectSlotf = (LPALGETAUXILIARYEFFECTSLOTF)alGetProcAddress(
"alGetAuxiliaryEffectSlotf");
172 alGetAuxiliaryEffectSlotfv = (LPALGETAUXILIARYEFFECTSLOTFV)alGetProcAddress(
"alGetAuxiliaryEffectSlotfv");
174 if (alGenEffects && alDeleteEffects && alIsEffect && alEffecti && alEffectiv && alEffectf &&
175 alEffectfv && alGetEffecti && alGetEffectiv && alGetEffectf && alGetEffectfv && alGenFilters &&
176 alDeleteFilters && alIsFilter && alFilteri && alFilteriv && alFilterf && alFilterfv &&
177 alGetFilteri && alGetFilteriv && alGetFilterf && alGetFilterfv && alGenAuxiliaryEffectSlots &&
178 alDeleteAuxiliaryEffectSlots && alIsAuxiliaryEffectSlot && alAuxiliaryEffectSloti &&
179 alAuxiliaryEffectSlotiv && alAuxiliaryEffectSlotf && alAuxiliaryEffectSlotfv &&
180 alGetAuxiliaryEffectSloti && alGetAuxiliaryEffectSlotiv && alGetAuxiliaryEffectSlotf &&
181 alGetAuxiliaryEffectSlotfv)