diff options
Diffstat (limited to 'Alc/mixer_sse.c')
-rw-r--r-- | Alc/mixer_sse.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/Alc/mixer_sse.c b/Alc/mixer_sse.c index 21234f0f..d26866a9 100644 --- a/Alc/mixer_sse.c +++ b/Alc/mixer_sse.c @@ -202,18 +202,16 @@ void MixDirect_SSE(ALfloat (*restrict OutBuffer)[BUFFERSIZE], const ALfloat *dat } -void MixSend_SSE(SendParams *params, const ALfloat *restrict data, - ALuint OutPos, ALuint BufferSize) +void MixSend_SSE(ALfloat (*restrict OutBuffer)[BUFFERSIZE], const ALfloat *data, + MixGainMono *Gain, ALuint Counter, ALuint OutPos, ALuint BufferSize) { - ALfloat (*restrict OutBuffer)[BUFFERSIZE] = params->OutBuffer; - ALuint Counter = maxu(params->Counter, OutPos) - OutPos; ALfloat WetGain, Step; __m128 gain, step; { ALuint pos = 0; - WetGain = params->Gain.Current; - Step = params->Gain.Step; + WetGain = Gain->Current; + Step = Gain->Step; if(Step != 1.0f && Counter > 0) { if(BufferSize-pos > 3 && Counter-pos > 3) @@ -241,8 +239,8 @@ void MixSend_SSE(SendParams *params, const ALfloat *restrict data, WetGain *= Step; } if(pos == Counter) - WetGain = params->Gain.Target; - params->Gain.Current = WetGain; + WetGain = Gain->Target; + Gain->Current = WetGain; for(;pos < BufferSize && (pos&3) != 0;pos++) OutBuffer[0][OutPos+pos] += data[pos]*WetGain; } |