aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/mixer_neon.c
diff options
context:
space:
mode:
Diffstat (limited to 'Alc/mixer_neon.c')
-rw-r--r--Alc/mixer_neon.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/Alc/mixer_neon.c b/Alc/mixer_neon.c
index 1fc56e53..6a0421a5 100644
--- a/Alc/mixer_neon.c
+++ b/Alc/mixer_neon.c
@@ -118,18 +118,16 @@ void MixDirect_Neon(ALfloat (*restrict OutBuffer)[BUFFERSIZE], const ALfloat *da
}
-void MixSend_Neon(SendParams *params, const ALfloat *restrict data,
- ALuint OutPos, ALuint BufferSize)
+void MixSend_Neon(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;
float32x4_t gain;
{
ALuint pos = 0;
- WetGain = params->Gain.Current;
- Step = params->Gain.Step;
+ WetGain = Gain->Current;
+ Step = Gain->Step;
if(Step != 1.0f && Counter > 0)
{
for(;pos < BufferSize && pos < Counter;pos++)
@@ -138,8 +136,8 @@ void MixSend_Neon(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;
}