diff options
author | Chris Robinson <[email protected]> | 2011-07-20 22:53:46 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2011-07-20 22:53:46 -0700 |
commit | 77128d298ec360c7e64f0ec9b9b25d38c1c607b6 (patch) | |
tree | eb6662fb5a1b9713e8e4dd766a9ac030f93e78fc | |
parent | 1e8a379a03b80dbfc621855fd819f73487bcc7de (diff) |
Add an option to emulate EAX reverb using standard reverb
-rw-r--r-- | Alc/ALc.c | 1 | ||||
-rw-r--r-- | Alc/alcReverb.c | 5 | ||||
-rw-r--r-- | OpenAL32/Include/alEffect.h | 1 | ||||
-rw-r--r-- | alsoftrc.sample | 6 |
4 files changed, 12 insertions, 1 deletions
@@ -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 ## |