aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2008-10-02 22:20:42 -0700
committerChris Robinson <[email protected]>2008-10-02 22:20:42 -0700
commit3863dcc9cb1b49ee028ccfacaf0a238dcb5de29c (patch)
treefafb9e0d306fcb77a6238a35935348ce1036ea52 /OpenAL32
parenta2568409fce7cc6b5c2537fe095fa910afb0561c (diff)
Use a new low-pass filter, based on the I3DL2 spec
Many thanks to Christopher Fitzgerald, for helping with it
Diffstat (limited to 'OpenAL32')
-rw-r--r--OpenAL32/Include/alFilter.h6
-rw-r--r--OpenAL32/Include/alSource.h3
-rw-r--r--OpenAL32/alAuxEffectSlot.c2
-rw-r--r--OpenAL32/alSource.c4
4 files changed, 3 insertions, 12 deletions
diff --git a/OpenAL32/Include/alFilter.h b/OpenAL32/Include/alFilter.h
index 83912cfa..11cb45cd 100644
--- a/OpenAL32/Include/alFilter.h
+++ b/OpenAL32/Include/alFilter.h
@@ -8,8 +8,8 @@ extern "C" {
#endif
typedef struct {
- float history[2]; /* history in filter */
- float coef[4 + 1]; /* coefficients of filter */
+ ALfloat history[4];
+ ALfloat coeff;
} FILTER;
#define AL_FILTER_TYPE 0x8001
@@ -53,8 +53,6 @@ ALvoid AL_APIENTRY alGetFilterfv(ALuint filter, ALenum param, ALfloat *pflValues
ALvoid ReleaseALFilters(ALvoid);
-int InitLowPassFilter(ALCcontext *Context, FILTER *iir);
-
#ifdef __cplusplus
}
#endif
diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h
index 976921f9..753553b2 100644
--- a/OpenAL32/Include/alSource.h
+++ b/OpenAL32/Include/alSource.h
@@ -69,6 +69,7 @@ typedef struct ALsource
struct {
struct ALeffectslot *Slot;
ALfilter WetFilter;
+ FILTER iirFilter;
} Send[MAX_SENDS];
ALboolean DryGainHFAuto;
@@ -98,8 +99,6 @@ typedef struct ALsource
// Current gains, which are ramped while mixed
ALfloat DryGains[OUTPUTCHANNELS];
ALfloat WetGains[OUTPUTCHANNELS];
- ALfloat DryGainHF;
- ALfloat WetGainHF;
struct ALsource *next;
} ALsource;
diff --git a/OpenAL32/alAuxEffectSlot.c b/OpenAL32/alAuxEffectSlot.c
index 31218054..235d1b8d 100644
--- a/OpenAL32/alAuxEffectSlot.c
+++ b/OpenAL32/alAuxEffectSlot.c
@@ -71,8 +71,6 @@ ALvoid AL_APIENTRY alGenAuxiliaryEffectSlots(ALsizei n, ALuint *effectslots)
break;
}
- InitLowPassFilter(Context, &(*list)->iirFilter);
-
(*list)->Gain = 1.0;
(*list)->AuxSendAuto = AL_TRUE;
(*list)->refcount = 0;
diff --git a/OpenAL32/alSource.c b/OpenAL32/alSource.c
index fa07751f..fefbdf08 100644
--- a/OpenAL32/alSource.c
+++ b/OpenAL32/alSource.c
@@ -75,8 +75,6 @@ ALAPI ALvoid ALAPIENTRY alGenSources(ALsizei n,ALuint *sources)
break;
}
- InitLowPassFilter(Context, &(*list)->iirFilter);
-
sources[i] = (ALuint)ALTHUNK_ADDENTRY(*list);
(*list)->source = sources[i];
@@ -1406,8 +1404,6 @@ ALAPI ALvoid ALAPIENTRY alSourcePlayv(ALsizei n, const ALuint *pSourceList)
pSource->DryGains[j] = 0.0f;
pSource->WetGains[j] = 0.0f;
}
- pSource->DryGainHF = 0.0f;
- pSource->WetGainHF = 0.0f;
if (pSource->state != AL_PAUSED)
{