diff options
Diffstat (limited to 'Alc/mixer_neon.c')
-rw-r--r-- | Alc/mixer_neon.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/Alc/mixer_neon.c b/Alc/mixer_neon.c index 161c19c8..1fc56e53 100644 --- a/Alc/mixer_neon.c +++ b/Alc/mixer_neon.c @@ -75,9 +75,8 @@ static inline void ApplyCoeffs(ALuint Offset, ALfloat (*restrict Values)[2], #undef SUFFIX -void MixDirect_Neon(DirectParams *params, - ALfloat (*restrict OutBuffer)[BUFFERSIZE], const ALfloat *restrict data, - ALuint Counter, ALuint srcchan, ALuint OutPos, ALuint BufferSize) +void MixDirect_Neon(ALfloat (*restrict OutBuffer)[BUFFERSIZE], const ALfloat *data, + MixGains *Gains, ALuint Counter, ALuint OutPos, ALuint BufferSize) { ALfloat DrySend, Step; float32x4_t gain; @@ -86,8 +85,8 @@ void MixDirect_Neon(DirectParams *params, for(c = 0;c < MaxChannels;c++) { ALuint pos = 0; - DrySend = params->Mix.Gains.Current[srcchan][c]; - Step = params->Mix.Gains.Step[srcchan][c]; + DrySend = Gains->Current[c]; + Step = Gains->Step[c]; if(Step != 1.0f && Counter > 0) { for(;pos < BufferSize && pos < Counter;pos++) @@ -96,8 +95,8 @@ void MixDirect_Neon(DirectParams *params, DrySend *= Step; } if(pos == Counter) - DrySend = params->Mix.Gains.Target[srcchan][c]; - params->Mix.Gains.Current[srcchan][c] = DrySend; + DrySend = Gains->Target[c]; + Gains->Current[c] = DrySend; /* Mix until pos is aligned with 4 or the mix is done. */ for(;pos < BufferSize && (pos&3) != 0;pos++) OutBuffer[c][OutPos+pos] += data[pos]*DrySend; |