From 53d8a496736c61b9cde5d982737bed98b2f72004 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Mon, 12 Sep 2016 11:48:15 -0700 Subject: [PATCH] Call ALfilterState_processC directly It's the only implementation currently, so there's no point to having it stored as a function pointer in the filter struct. Even if there were SIMD versions, it'd be a global selection, not per-instance. --- Alc/effects/equalizer.c | 4 ---- Alc/effects/modulator.c | 1 - OpenAL32/Include/alFilter.h | 5 ++--- OpenAL32/alFilter.c | 2 -- 4 files changed, 2 insertions(+), 10 deletions(-) diff --git a/Alc/effects/equalizer.c b/Alc/effects/equalizer.c index 61932ffb..1a63b418 100644 --- a/Alc/effects/equalizer.c +++ b/Alc/effects/equalizer.c @@ -151,7 +151,6 @@ static ALvoid ALequalizerState_update(ALequalizerState *state, const ALCdevice * state->filter[0][i].b0 = state->filter[0][0].b0; state->filter[0][i].b1 = state->filter[0][0].b1; state->filter[0][i].b2 = state->filter[0][0].b2; - state->filter[0][i].process = state->filter[0][0].process; } gain = props->Equalizer.Mid1Gain; @@ -168,7 +167,6 @@ static ALvoid ALequalizerState_update(ALequalizerState *state, const ALCdevice * state->filter[1][i].b0 = state->filter[1][0].b0; state->filter[1][i].b1 = state->filter[1][0].b1; state->filter[1][i].b2 = state->filter[1][0].b2; - state->filter[1][i].process = state->filter[1][0].process; } gain = props->Equalizer.Mid2Gain; @@ -185,7 +183,6 @@ static ALvoid ALequalizerState_update(ALequalizerState *state, const ALCdevice * state->filter[2][i].b0 = state->filter[2][0].b0; state->filter[2][i].b1 = state->filter[2][0].b1; state->filter[2][i].b2 = state->filter[2][0].b2; - state->filter[2][i].process = state->filter[2][0].process; } gain = sqrtf(props->Equalizer.HighGain); @@ -200,7 +197,6 @@ static ALvoid ALequalizerState_update(ALequalizerState *state, const ALCdevice * state->filter[3][i].b0 = state->filter[3][0].b0; state->filter[3][i].b1 = state->filter[3][0].b1; state->filter[3][i].b2 = state->filter[3][0].b2; - state->filter[3][i].process = state->filter[3][0].process; } } diff --git a/Alc/effects/modulator.c b/Alc/effects/modulator.c index 5ca37f4f..247cdf61 100644 --- a/Alc/effects/modulator.c +++ b/Alc/effects/modulator.c @@ -142,7 +142,6 @@ static ALvoid ALmodulatorState_update(ALmodulatorState *state, const ALCdevice * state->Filter[i].b0 = a; state->Filter[i].b1 = -a; state->Filter[i].b2 = 0.0f; - state->Filter[i].process = ALfilterState_processC; } STATIC_CAST(ALeffectState,state)->OutBuffer = Device->FOAOut.Buffer; diff --git a/OpenAL32/Include/alFilter.h b/OpenAL32/Include/alFilter.h index a74cd211..1f7095bc 100644 --- a/OpenAL32/Include/alFilter.h +++ b/OpenAL32/Include/alFilter.h @@ -44,10 +44,9 @@ typedef struct ALfilterState { ALfloat y[2]; /* History of two last output samples */ ALfloat a1, a2; /* Transfer function coefficients "a" (a0 is pre-applied) */ ALfloat b0, b1, b2; /* Transfer function coefficients "b" */ - - void (*process)(struct ALfilterState *self, ALfloat *restrict dst, const ALfloat *restrict src, ALuint numsamples); } ALfilterState; -#define ALfilterState_process(a, ...) ((a)->process((a), __VA_ARGS__)) +/* Currently only a C-based filter process method is implemented. */ +#define ALfilterState_process ALfilterState_processC /* Calculates the rcpQ (i.e. 1/Q) coefficient for shelving filters, using the * reference gain and shelf slope parameter. diff --git a/OpenAL32/alFilter.c b/OpenAL32/alFilter.c index fa3496c9..c675d344 100644 --- a/OpenAL32/alFilter.c +++ b/OpenAL32/alFilter.c @@ -431,8 +431,6 @@ void ALfilterState_setParams(ALfilterState *filter, ALfilterType type, ALfloat g filter->b0 = b[0] / a[0]; filter->b1 = b[1] / a[0]; filter->b2 = b[2] / a[0]; - - filter->process = ALfilterState_processC; } -- 2.11.4.GIT