aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/alEffect.c
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2013-05-18 01:33:01 -0700
committerChris Robinson <[email protected]>2013-05-18 01:33:01 -0700
commit78e7c1c27bb0dcc05fc961e53060be17e3df3e02 (patch)
treed4a1368d6a4039bf11b1a5ae9995089ee705cc71 /OpenAL32/alEffect.c
parenta7ad6080f0d3fc783fd5e1811b961ab9efe79cde (diff)
Implement distortion and equalizer effects
Code provided by Mike Gorchak
Diffstat (limited to 'OpenAL32/alEffect.c')
-rw-r--r--OpenAL32/alEffect.c39
1 files changed, 37 insertions, 2 deletions
diff --git a/OpenAL32/alEffect.c b/OpenAL32/alEffect.c
index 26d5398d..23176beb 100644
--- a/OpenAL32/alEffect.c
+++ b/OpenAL32/alEffect.c
@@ -430,7 +430,7 @@ static void InitEffectParams(ALeffect *effect, ALenum type)
case AL_EFFECT_CHORUS:
effect->Chorus.Waveform = AL_CHORUS_DEFAULT_WAVEFORM;
effect->Chorus.Phase = AL_CHORUS_DEFAULT_PHASE;
- effect->Chorus.Rate = AL_CHORUS_MAX_RATE;
+ effect->Chorus.Rate = AL_CHORUS_DEFAULT_RATE;
effect->Chorus.Depth = AL_CHORUS_DEFAULT_DEPTH;
effect->Chorus.Feedback = AL_CHORUS_DEFAULT_FEEDBACK;
effect->Chorus.Delay = AL_CHORUS_DEFAULT_DELAY;
@@ -443,6 +443,21 @@ static void InitEffectParams(ALeffect *effect, ALenum type)
effect->GetParamf = chorus_GetParamf;
effect->GetParamfv = chorus_GetParamfv;
break;
+ case AL_EFFECT_DISTORTION:
+ effect->Distortion.Edge = AL_DISTORTION_DEFAULT_EDGE;
+ effect->Distortion.Gain = AL_DISTORTION_DEFAULT_GAIN;
+ effect->Distortion.LowpassCutoff = AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF;
+ effect->Distortion.EQCenter = AL_DISTORTION_DEFAULT_EQCENTER;
+ effect->Distortion.EQBandwidth = AL_DISTORTION_DEFAULT_EQBANDWIDTH;
+ effect->SetParami = distortion_SetParami;
+ effect->SetParamiv = distortion_SetParamiv;
+ effect->SetParamf = distortion_SetParamf;
+ effect->SetParamfv = distortion_SetParamfv;
+ effect->GetParami = distortion_GetParami;
+ effect->GetParamiv = distortion_GetParamiv;
+ effect->GetParamf = distortion_GetParamf;
+ effect->GetParamfv = distortion_GetParamfv;
+ break;
case AL_EFFECT_ECHO:
effect->Echo.Delay = AL_ECHO_DEFAULT_DELAY;
effect->Echo.LRDelay = AL_ECHO_DEFAULT_LRDELAY;
@@ -458,10 +473,30 @@ static void InitEffectParams(ALeffect *effect, ALenum type)
effect->GetParamf = echo_GetParamf;
effect->GetParamfv = echo_GetParamfv;
break;
+ case AL_EFFECT_EQUALIZER:
+ effect->Equalizer.LowCutoff = AL_EQUALIZER_DEFAULT_LOW_CUTOFF;
+ effect->Equalizer.LowGain = AL_EQUALIZER_DEFAULT_LOW_GAIN;
+ effect->Equalizer.Mid1Center = AL_EQUALIZER_DEFAULT_MID1_CENTER;
+ effect->Equalizer.Mid1Gain = AL_EQUALIZER_DEFAULT_MID1_GAIN;
+ effect->Equalizer.Mid1Width = AL_EQUALIZER_DEFAULT_MID1_WIDTH;
+ effect->Equalizer.Mid2Center = AL_EQUALIZER_DEFAULT_MID2_CENTER;
+ effect->Equalizer.Mid2Gain = AL_EQUALIZER_DEFAULT_MID2_GAIN;
+ effect->Equalizer.Mid2Width = AL_EQUALIZER_DEFAULT_MID2_WIDTH;
+ effect->Equalizer.HighCutoff = AL_EQUALIZER_DEFAULT_HIGH_CUTOFF;
+ effect->Equalizer.HighGain = AL_EQUALIZER_DEFAULT_HIGH_GAIN;
+ effect->SetParami = equalizer_SetParami;
+ effect->SetParamiv = equalizer_SetParamiv;
+ effect->SetParamf = equalizer_SetParamf;
+ effect->SetParamfv = equalizer_SetParamfv;
+ effect->GetParami = equalizer_GetParami;
+ effect->GetParamiv = equalizer_GetParamiv;
+ effect->GetParamf = equalizer_GetParamf;
+ effect->GetParamfv = equalizer_GetParamfv;
+ break;
case AL_EFFECT_FLANGER:
effect->Flanger.Waveform = AL_FLANGER_DEFAULT_WAVEFORM;
effect->Flanger.Phase = AL_FLANGER_DEFAULT_PHASE;
- effect->Flanger.Rate = AL_FLANGER_MAX_RATE;
+ effect->Flanger.Rate = AL_FLANGER_DEFAULT_RATE;
effect->Flanger.Depth = AL_FLANGER_DEFAULT_DEPTH;
effect->Flanger.Feedback = AL_FLANGER_DEFAULT_FEEDBACK;
effect->Flanger.Delay = AL_FLANGER_DEFAULT_DELAY;