diff options
author | Chris Robinson <[email protected]> | 2012-01-19 19:30:03 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2012-01-19 19:30:03 -0800 |
commit | 51e81f4867a02001f390222b6ce86bf212a38bd6 (patch) | |
tree | 8391b8f6dee8924223a80140a67f644a53b5fa7d /OpenAL32 | |
parent | ae7b61b040059f7112ad6fb38340b8c25d3393b7 (diff) |
Add a global option to apply a reverb effect on source send 0
A special slot on the device is created and processed, so it can be shared
across all contexts on the device. Sources that don't have a slot set on send 0
will use this special slot instead.
Diffstat (limited to 'OpenAL32')
-rw-r--r-- | OpenAL32/Include/alAuxEffectSlot.h | 1 | ||||
-rw-r--r-- | OpenAL32/Include/alEffect.h | 1 | ||||
-rw-r--r-- | OpenAL32/Include/alMain.h | 3 | ||||
-rw-r--r-- | OpenAL32/alAuxEffectSlot.c | 3 | ||||
-rw-r--r-- | OpenAL32/alEffect.c | 6 |
5 files changed, 12 insertions, 2 deletions
diff --git a/OpenAL32/Include/alAuxEffectSlot.h b/OpenAL32/Include/alAuxEffectSlot.h index cdff330f..1646031c 100644 --- a/OpenAL32/Include/alAuxEffectSlot.h +++ b/OpenAL32/Include/alAuxEffectSlot.h @@ -35,6 +35,7 @@ typedef struct ALeffectslot } ALeffectslot; +ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *EffectSlot, ALeffect *effect); ALvoid ReleaseALAuxiliaryEffectSlots(ALCcontext *Context); diff --git a/OpenAL32/Include/alEffect.h b/OpenAL32/Include/alEffect.h index 566458c6..264ada0d 100644 --- a/OpenAL32/Include/alEffect.h +++ b/OpenAL32/Include/alEffect.h @@ -102,6 +102,7 @@ typedef struct ALeffect static __inline ALboolean IsReverbEffect(ALenum type) { return type == AL_EFFECT_REVERB || type == AL_EFFECT_EAXREVERB; } +ALvoid GetReverbEffect(ALeffect *effect); ALvoid ReleaseALEffects(ALCdevice *device); #ifdef __cplusplus diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h index c0ffbe5a..fa88a4e4 100644 --- a/OpenAL32/Include/alMain.h +++ b/OpenAL32/Include/alMain.h @@ -598,6 +598,9 @@ struct ALCdevice_struct ALfloat ClickRemoval[MAXCHANNELS]; ALfloat PendingClicks[MAXCHANNELS]; + /* Default effect slot */ + struct ALeffectslot *DefaultSlot; + // Contexts created on this device ALCcontext *volatile ContextList; diff --git a/OpenAL32/alAuxEffectSlot.c b/OpenAL32/alAuxEffectSlot.c index 03a6218b..6c4a31f2 100644 --- a/OpenAL32/alAuxEffectSlot.c +++ b/OpenAL32/alAuxEffectSlot.c @@ -32,7 +32,6 @@ #include "alSource.h" -static ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *EffectSlot, ALeffect *effect); static ALenum ResizeEffectSlotArray(ALCcontext *Context, ALsizei count); static ALvoid RemoveEffectSlotArray(ALCcontext *Context, ALeffectslot *val); @@ -512,7 +511,7 @@ static ALenum ResizeEffectSlotArray(ALCcontext *Context, ALsizei count) return AL_NO_ERROR; } -static ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *EffectSlot, ALeffect *effect) +ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *EffectSlot, ALeffect *effect) { ALenum newtype = (effect ? effect->type : AL_EFFECT_NULL); ALeffectState *State = NULL; diff --git a/OpenAL32/alEffect.c b/OpenAL32/alEffect.c index 11212009..d7f7c3c1 100644 --- a/OpenAL32/alEffect.c +++ b/OpenAL32/alEffect.c @@ -1306,3 +1306,9 @@ static void InitEffectParams(ALeffect *effect, ALenum type) } effect->type = type; } + + +ALvoid GetReverbEffect(ALeffect *effect) +{ + InitEffectParams(effect, AL_EFFECT_EAXREVERB); +} |