aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2011-07-20 22:53:46 -0700
committerChris Robinson <[email protected]>2011-07-20 22:53:46 -0700
commit77128d298ec360c7e64f0ec9b9b25d38c1c607b6 (patch)
treeeb6662fb5a1b9713e8e4dd766a9ac030f93e78fc /Alc
parent1e8a379a03b80dbfc621855fd819f73487bcc7de (diff)
Add an option to emulate EAX reverb using standard reverb
Diffstat (limited to 'Alc')
-rw-r--r--Alc/ALc.c1
-rw-r--r--Alc/alcReverb.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index d416e413..905fee22 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -566,6 +566,7 @@ static void alc_initconfig(void)
ReverbBoost *= aluPow(10.0f, GetConfigValueFloat("reverb", "boost", 0.0f) /
20.0f);
+ EmulateEAXReverb = GetConfigValueBool("reverb", "emulate-eax", AL_FALSE);
devs = GetConfigValue(NULL, "drivers", "");
if(devs[0])
diff --git a/Alc/alcReverb.c b/Alc/alcReverb.c
index 4b7aa1c4..4f9360b8 100644
--- a/Alc/alcReverb.c
+++ b/Alc/alcReverb.c
@@ -140,6 +140,9 @@ typedef struct ALverbState {
*/
ALfloat ReverbBoost = 1.0f;
+/* Specifies whether to use a standard reverb effect in place of EAX reverb */
+ALboolean EmulateEAXReverb = AL_FALSE;
+
/* This coefficient is used to define the maximum frequency range controlled
* by the modulation depth. The current value of 0.1 will allow it to swing
* from 0.9x to 1.1x. This value must be below 1. At 1 it will cause the
@@ -1364,7 +1367,7 @@ ALeffectState *VerbCreate(void)
ALeffectState *EAXVerbCreate(void)
{
ALeffectState *State = VerbCreate();
- if(State)
+ if(State && EmulateEAXReverb == AL_FALSE)
{
State->DeviceUpdate = EAXVerbDeviceUpdate;
State->Update = EAXVerbUpdate;