diff options
author | Chris Robinson <[email protected]> | 2013-05-21 02:43:59 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2013-05-21 02:43:59 -0700 |
commit | fba9ac6db1d1d1bff066befe48f75c64aead3587 (patch) | |
tree | 78527495cb4e67fb9888ac441fd266f425562619 | |
parent | de387c853f00af409fc2cdceb0736f60934389c2 (diff) |
Avoid storing the device frequency in the distortion state
-rw-r--r-- | Alc/alcDistortion.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/Alc/alcDistortion.c b/Alc/alcDistortion.c index c431a2ca..0b0c9c93 100644 --- a/Alc/alcDistortion.c +++ b/Alc/alcDistortion.c @@ -55,7 +55,6 @@ typedef struct ALdistortionState { /* Effect parameters */ ALEQFilter bandpass; ALEQFilter lowpass; - ALfloat frequency; ALfloat attenuation; ALfloat edge_coeff; } ALdistortionState; @@ -68,17 +67,16 @@ static ALvoid DistortionDestroy(ALeffectState *effect) static ALboolean DistortionDeviceUpdate(ALeffectState *effect, ALCdevice *Device) { - ALdistortionState *state = STATIC_UPCAST(ALdistortionState, ALeffectState, effect); - - state->frequency = (ALfloat)Device->Frequency; - return AL_TRUE; + (void)effect; + (void)Device; } static ALvoid DistortionUpdate(ALeffectState *effect, ALCdevice *Device, const ALeffectslot *Slot) { ALdistortionState *state = STATIC_UPCAST(ALdistortionState, ALeffectState, effect); ALfloat gain = sqrtf(1.0f / Device->NumChan) * Slot->Gain; + ALfloat frequency = (ALfloat)Device->Frequency; ALuint it; ALfloat w0; ALfloat alpha; @@ -105,7 +103,7 @@ static ALvoid DistortionUpdate(ALeffectState *effect, ALCdevice *Device, const A cutoff = Slot->effect.Distortion.LowpassCutoff; /* Bandwidth value is constant in octaves */ bandwidth = (cutoff / 2.0f) / (cutoff * 0.67f); - w0 = 2.0f * F_PI * cutoff / (state->frequency * 4.0f); + w0 = 2.0f*F_PI * cutoff / (frequency*4.0f); alpha = sinf(w0) * sinhf(logf(2.0f) / 2.0f * bandwidth * w0 / sinf(w0)); state->lowpass.b[0] = (1.0f - cosf(w0)) / 2.0f; state->lowpass.b[1] = 1.0f - cosf(w0); @@ -118,7 +116,7 @@ static ALvoid DistortionUpdate(ALeffectState *effect, ALCdevice *Device, const A cutoff = Slot->effect.Distortion.EQCenter; /* Convert bandwidth in Hz to octaves */ bandwidth = Slot->effect.Distortion.EQBandwidth / (cutoff * 0.67f); - w0 = 2.0f * F_PI * cutoff / (state->frequency * 4.0f); + w0 = 2.0f*F_PI * cutoff / (frequency*4.0f); alpha = sinf(w0) * sinhf(logf(2.0f) / 2.0f * bandwidth * w0 / sinf(w0)); state->bandpass.b[0] = alpha; state->bandpass.b[1] = 0; |