From 72986882f549275c6c946b325a9c75b1547f37f1 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sun, 23 Mar 2014 16:28:55 -0700 Subject: [PATCH] Remove the click removal buffers for auxiliary effect slots --- Alc/ALu.c | 38 ------------------------------ Alc/mixer.c | 3 +-- Alc/mixer_c.c | 2 +- Alc/mixer_defs.h | 6 ++--- Alc/mixer_neon.c | 2 +- Alc/mixer_sse.c | 2 +- OpenAL32/Include/alAuxEffectSlot.h | 3 --- OpenAL32/Include/alu.h | 5 +--- OpenAL32/alAuxEffectSlot.c | 2 -- 9 files changed, 8 insertions(+), 55 deletions(-) diff --git a/Alc/ALu.c b/Alc/ALu.c index d00620eb..302d387f 100644 --- a/Alc/ALu.c +++ b/Alc/ALu.c @@ -315,17 +315,9 @@ ALvoid CalcNonAttnSourceParams(ALactivesource *src, const ALCcontext *ALContext) if(!Slot && i == 0) Slot = Device->DefaultSlot; if(!Slot || Slot->EffectType == AL_EFFECT_NULL) - { src->Send[i].OutBuffer = NULL; - src->Send[i].ClickRemoval = NULL; - src->Send[i].PendingClicks = NULL; - } else - { src->Send[i].OutBuffer = Slot->WetBuffer; - src->Send[i].ClickRemoval = Slot->ClickRemoval; - src->Send[i].PendingClicks = Slot->PendingClicks; - } } /* Calculate the stepping value */ @@ -716,17 +708,9 @@ ALvoid CalcSourceParams(ALactivesource *src, const ALCcontext *ALContext) } if(!Slot || Slot->EffectType == AL_EFFECT_NULL) - { src->Send[i].OutBuffer = NULL; - src->Send[i].ClickRemoval = NULL; - src->Send[i].PendingClicks = NULL; - } else - { src->Send[i].OutBuffer = Slot->WetBuffer; - src->Send[i].ClickRemoval = Slot->ClickRemoval; - src->Send[i].PendingClicks = Slot->PendingClicks; - } } /* Transform source to listener space (convert to head relative) */ @@ -1231,17 +1215,6 @@ ALvoid aluMixData(ALCdevice *device, ALvoid *buffer, ALsizei size) slot_end = VECTOR_ITER_END(ctx->ActiveAuxSlots); while(slot != slot_end) { - ALfloat offset = (*slot)->ClickRemoval[0]; - if(offset < (1.0f/32768.0f)) - offset = 0.0f; - else for(i = 0;i < SamplesToDo;i++) - { - (*slot)->WetBuffer[0][i] += offset; - offset -= offset * (1.0f/256.0f); - } - (*slot)->ClickRemoval[0] = offset + (*slot)->PendingClicks[0]; - (*slot)->PendingClicks[0] = 0.0f; - if(!DeferUpdates && ExchangeInt(&(*slot)->NeedsUpdate, AL_FALSE)) V((*slot)->EffectState,update)(device, *slot); @@ -1260,17 +1233,6 @@ ALvoid aluMixData(ALCdevice *device, ALvoid *buffer, ALsizei size) slot = &device->DefaultSlot; if(*slot != NULL) { - ALfloat offset = (*slot)->ClickRemoval[0]; - if(offset < (1.0f/32768.0f)) - offset = 0.0f; - else for(i = 0;i < SamplesToDo;i++) - { - (*slot)->WetBuffer[0][i] += offset; - offset -= offset * (1.0f/256.0f); - } - (*slot)->ClickRemoval[0] = offset + (*slot)->PendingClicks[0]; - (*slot)->PendingClicks[0] = 0.0f; - if(ExchangeInt(&(*slot)->NeedsUpdate, AL_FALSE)) V((*slot)->EffectState,update)(device, *slot); diff --git a/Alc/mixer.c b/Alc/mixer.c index ae6b324f..122476e5 100644 --- a/Alc/mixer.c +++ b/Alc/mixer.c @@ -342,8 +342,7 @@ ALvoid MixSource(ALactivesource *src, ALCdevice *Device, ALuint SamplesToDo) DoFilter(&sendparms->LpFilter[chan], SrcData, ResampledData, DstBufferSize); - src->WetMix(sendparms, SrcData, OutPos, - SamplesToDo, DstBufferSize); + src->WetMix(sendparms, SrcData, OutPos, DstBufferSize); } } /* Update positions */ diff --git a/Alc/mixer_c.c b/Alc/mixer_c.c index 87e8c8e0..e4eb9071 100644 --- a/Alc/mixer_c.c +++ b/Alc/mixer_c.c @@ -115,7 +115,7 @@ void MixDirect_C(DirectParams *params, const ALfloat *restrict data, ALuint srcc void MixSend_C(SendParams *params, const ALfloat *restrict data, - ALuint OutPos, ALuint UNUSED(SamplesToDo), ALuint BufferSize) + ALuint OutPos, ALuint BufferSize) { ALfloat (*restrict OutBuffer)[BUFFERSIZE] = params->OutBuffer; ALuint Counter = maxu(params->Counter, OutPos) - OutPos; diff --git a/Alc/mixer_defs.h b/Alc/mixer_defs.h index 34430517..a371e65a 100644 --- a/Alc/mixer_defs.h +++ b/Alc/mixer_defs.h @@ -18,16 +18,16 @@ void Resample_cubic32_C(const ALfloat *src, ALuint frac, ALuint increment, ALflo /* C mixers */ void MixDirect_Hrtf_C(struct DirectParams*,const ALfloat*restrict,ALuint,ALuint,ALuint); void MixDirect_C(struct DirectParams*,const ALfloat*restrict,ALuint,ALuint,ALuint); -void MixSend_C(struct SendParams*,const ALfloat*restrict,ALuint,ALuint,ALuint); +void MixSend_C(struct SendParams*,const ALfloat*restrict,ALuint,ALuint); /* SSE mixers */ void MixDirect_Hrtf_SSE(struct DirectParams*,const ALfloat*restrict,ALuint,ALuint,ALuint); void MixDirect_SSE(struct DirectParams*,const ALfloat*restrict,ALuint,ALuint,ALuint); -void MixSend_SSE(struct SendParams*,const ALfloat*restrict,ALuint,ALuint,ALuint); +void MixSend_SSE(struct SendParams*,const ALfloat*restrict,ALuint,ALuint); /* Neon mixers */ void MixDirect_Hrtf_Neon(struct DirectParams*,const ALfloat*restrict,ALuint,ALuint,ALuint); void MixDirect_Neon(struct DirectParams*,const ALfloat*restrict,ALuint,ALuint,ALuint); -void MixSend_Neon(struct SendParams*,const ALfloat*restrict,ALuint,ALuint,ALuint); +void MixSend_Neon(struct SendParams*,const ALfloat*restrict,ALuint,ALuint); #endif /* MIXER_DEFS_H */ diff --git a/Alc/mixer_neon.c b/Alc/mixer_neon.c index f5d1148e..5a598f5c 100644 --- a/Alc/mixer_neon.c +++ b/Alc/mixer_neon.c @@ -133,7 +133,7 @@ void MixDirect_Neon(DirectParams *params, const ALfloat *restrict data, ALuint s void MixSend_Neon(SendParams *params, const ALfloat *restrict data, - ALuint OutPos, ALuint UNUSED(SamplesToDo), ALuint BufferSize) + ALuint OutPos, ALuint BufferSize) { ALfloat (*restrict OutBuffer)[BUFFERSIZE] = params->OutBuffer; ALuint Counter = maxu(params->Counter, OutPos) - OutPos; diff --git a/Alc/mixer_sse.c b/Alc/mixer_sse.c index 4ae15201..bd96b8fa 100644 --- a/Alc/mixer_sse.c +++ b/Alc/mixer_sse.c @@ -204,7 +204,7 @@ void MixDirect_SSE(DirectParams *params, const ALfloat *restrict data, ALuint sr void MixSend_SSE(SendParams *params, const ALfloat *restrict data, - ALuint OutPos, ALuint UNUSED(SamplesToDo), ALuint BufferSize) + ALuint OutPos, ALuint BufferSize) { ALfloat (*restrict OutBuffer)[BUFFERSIZE] = params->OutBuffer; ALuint Counter = maxu(params->Counter, OutPos) - OutPos; diff --git a/OpenAL32/Include/alAuxEffectSlot.h b/OpenAL32/Include/alAuxEffectSlot.h index 81210776..264f8f73 100644 --- a/OpenAL32/Include/alAuxEffectSlot.h +++ b/OpenAL32/Include/alAuxEffectSlot.h @@ -74,9 +74,6 @@ typedef struct ALeffectslot { ALIGN(16) ALfloat WetBuffer[1][BUFFERSIZE]; - ALfloat ClickRemoval[1]; - ALfloat PendingClicks[1]; - RefCount ref; /* Self ID */ diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h index cfc54acc..c2e725ff 100644 --- a/OpenAL32/Include/alu.h +++ b/OpenAL32/Include/alu.h @@ -82,8 +82,6 @@ typedef struct DirectParams { typedef struct SendParams { ALfloat (*OutBuffer)[BUFFERSIZE]; - ALfloat *ClickRemoval; - ALfloat *PendingClicks; /* Gain control, which applies to all input channels to a single (mono) * output buffer. */ @@ -108,8 +106,7 @@ typedef ALvoid (*DryMixerFunc)(struct DirectParams *params, ALuint OutPos, ALuint BufferSize); typedef ALvoid (*WetMixerFunc)(struct SendParams *params, const ALfloat *restrict data, - ALuint OutPos, ALuint SamplesToDo, - ALuint BufferSize); + ALuint OutPos, ALuint BufferSize); #define GAIN_SILENCE_THRESHOLD (0.00001f) diff --git a/OpenAL32/alAuxEffectSlot.c b/OpenAL32/alAuxEffectSlot.c index 9c8e31b1..42715c02 100644 --- a/OpenAL32/alAuxEffectSlot.c +++ b/OpenAL32/alAuxEffectSlot.c @@ -531,8 +531,6 @@ ALenum InitEffectSlot(ALeffectslot *slot) { for(i = 0;i < BUFFERSIZE;i++) slot->WetBuffer[c][i] = 0.0f; - slot->ClickRemoval[c] = 0.0f; - slot->PendingClicks[c] = 0.0f; } slot->ref = 0;