diff options
Diffstat (limited to 'OpenAL32')
-rw-r--r-- | OpenAL32/Include/alFilter.h | 14 | ||||
-rw-r--r-- | OpenAL32/alFilter.c | 14 |
2 files changed, 15 insertions, 13 deletions
diff --git a/OpenAL32/Include/alFilter.h b/OpenAL32/Include/alFilter.h index 7eabe5cb..927b7fc4 100644 --- a/OpenAL32/Include/alFilter.h +++ b/OpenAL32/Include/alFilter.h @@ -101,19 +101,7 @@ static __inline ALfloat lpFilter1PC(FILTER *iir, ALuint offset, ALfloat input) /* Calculates the low-pass filter coefficient given the pre-scaled gain and * cos(w) value. Note that g should be pre-scaled (sqr(gain) for one-pole, * sqrt(gain) for four-pole, etc) */ -static __inline ALfloat lpCoeffCalc(ALfloat g, ALfloat cw) -{ - ALfloat a = 0.0f; - - /* Be careful with gains < 0.01, as that causes the coefficient - * head towards 1, which will flatten the signal */ - g = __max(g, 0.01f); - if(g < 0.9999f) /* 1-epsilon */ - a = (1 - g*cw - aluSqrt(2*g*(1-cw) - g*g*(1 - cw*cw))) / - (1 - g); - - return a; -} +ALfloat lpCoeffCalc(ALfloat g, ALfloat cw); typedef struct ALfilter diff --git a/OpenAL32/alFilter.c b/OpenAL32/alFilter.c index d63e8e8a..b16dc073 100644 --- a/OpenAL32/alFilter.c +++ b/OpenAL32/alFilter.c @@ -406,6 +406,20 @@ AL_API ALvoid AL_APIENTRY alGetFilterfv(ALuint filter, ALenum param, ALfloat *pf } +ALfloat lpCoeffCalc(ALfloat g, ALfloat cw) +{ + ALfloat a = 0.0f; + + /* Be careful with gains < 0.01, as that causes the coefficient + * head towards 1, which will flatten the signal */ + g = __max(g, 0.01f); + if(g < 0.9999f) /* 1-epsilon */ + a = (1 - g*cw - aluSqrt(2*g*(1-cw) - g*g*(1 - cw*cw))) / + (1 - g); + + return a; +} + ALvoid ReleaseALFilters(ALCdevice *device) { ALsizei i; |