aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2016-09-12 11:48:15 -0700
committerChris Robinson <[email protected]>2016-09-12 11:48:15 -0700
commit53d8a496736c61b9cde5d982737bed98b2f72004 (patch)
treedf7338078af31cddfc6151b855979be7b19979b0
parent46b3e1d08ca10e809eb2e20b6371812958b97e1f (diff)
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.
-rw-r--r--Alc/effects/equalizer.c4
-rw-r--r--Alc/effects/modulator.c1
-rw-r--r--OpenAL32/Include/alFilter.h5
-rw-r--r--OpenAL32/alFilter.c2
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;
}