aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Alc/ALc.c1
-rw-r--r--Alc/alcReverb.c5
-rw-r--r--OpenAL32/Include/alEffect.h1
-rw-r--r--alsoftrc.sample6
4 files changed, 12 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;
diff --git a/OpenAL32/Include/alEffect.h b/OpenAL32/Include/alEffect.h
index 252490a9..f5274d4a 100644
--- a/OpenAL32/Include/alEffect.h
+++ b/OpenAL32/Include/alEffect.h
@@ -19,6 +19,7 @@ enum {
extern ALboolean DisabledEffects[MAX_EFFECTS];
extern ALfloat ReverbBoost;
+extern ALboolean EmulateEAXReverb;
typedef struct ALeffect
{
diff --git a/alsoftrc.sample b/alsoftrc.sample
index 0b97b357..9ea4af15 100644
--- a/alsoftrc.sample
+++ b/alsoftrc.sample
@@ -162,6 +162,12 @@
# value of 0 means no change.
#boost = 0
+## emulate-eax:
+# Allows the standard reverb effect to be used in place of EAX reverb. EAX
+# reverb processing is a bit more CPU intensive than standard, so this option
+# allows a simpler effect to be used at the loss of some quality.
+#emulate-eax = false
+
##
## ALSA backend stuff
##