diff options
author | Chris Robinson <[email protected]> | 2020-01-05 17:12:48 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2020-01-05 17:12:48 -0800 |
commit | 54b49594e61373613630d01c8a84c878681dee34 (patch) | |
tree | 9dd10684881ceb514deb4b814d0b1ea8cf0ee985 /alc/mixer | |
parent | 05abcbc600a2da62a5ae79e490c66a8f2c068fe9 (diff) |
Simplify post-mix HRTF gain storage
Diffstat (limited to 'alc/mixer')
-rw-r--r-- | alc/mixer/defs.h | 4 | ||||
-rw-r--r-- | alc/mixer/hrtfbase.h | 8 | ||||
-rw-r--r-- | alc/mixer/mixer_c.cpp | 4 | ||||
-rw-r--r-- | alc/mixer/mixer_neon.cpp | 4 | ||||
-rw-r--r-- | alc/mixer/mixer_sse.cpp | 4 |
5 files changed, 10 insertions, 14 deletions
diff --git a/alc/mixer/defs.h b/alc/mixer/defs.h index 1e5b40d8..a3b49ad3 100644 --- a/alc/mixer/defs.h +++ b/alc/mixer/defs.h @@ -42,10 +42,10 @@ void MixRow_(const al::span<float> OutBuffer, const al::span<const float> Gains, template<InstSetType InstTag> void MixHrtf_(const float *InSamples, float2 *AccumSamples, const ALuint IrSize, - MixHrtfFilter *hrtfparams, const size_t BufferSize); + const MixHrtfFilter *hrtfparams, const size_t BufferSize); template<InstSetType InstTag> void MixHrtfBlend_(const float *InSamples, float2 *AccumSamples, const ALuint IrSize, - const HrtfFilter *oldparams, MixHrtfFilter *newparams, const size_t BufferSize); + const HrtfFilter *oldparams, const MixHrtfFilter *newparams, const size_t BufferSize); template<InstSetType InstTag> void MixDirectHrtf_(FloatBufferLine &LeftOut, FloatBufferLine &RightOut, const al::span<const FloatBufferLine> InSamples, float2 *AccumSamples, DirectHrtfState *State, diff --git a/alc/mixer/hrtfbase.h b/alc/mixer/hrtfbase.h index 942c56c3..ed40328c 100644 --- a/alc/mixer/hrtfbase.h +++ b/alc/mixer/hrtfbase.h @@ -14,7 +14,7 @@ using ApplyCoeffsT = void(&)(float2 *RESTRICT Values, const ALuint irSize, const template<ApplyCoeffsT ApplyCoeffs> inline void MixHrtfBase(const float *InSamples, float2 *RESTRICT AccumSamples, const ALuint IrSize, - MixHrtfFilter *hrtfparams, const size_t BufferSize) + const MixHrtfFilter *hrtfparams, const size_t BufferSize) { ASSUME(BufferSize > 0); @@ -35,13 +35,11 @@ inline void MixHrtfBase(const float *InSamples, float2 *RESTRICT AccumSamples, c stepcount += 1.0f; } - - hrtfparams->Gain = gain + gainstep*stepcount; } template<ApplyCoeffsT ApplyCoeffs> inline void MixHrtfBlendBase(const float *InSamples, float2 *RESTRICT AccumSamples, - const ALuint IrSize, const HrtfFilter *oldparams, MixHrtfFilter *newparams, + const ALuint IrSize, const HrtfFilter *oldparams, const MixHrtfFilter *newparams, const size_t BufferSize) { const auto &OldCoeffs = oldparams->Coeffs; @@ -78,8 +76,6 @@ inline void MixHrtfBlendBase(const float *InSamples, float2 *RESTRICT AccumSampl stepcount += 1.0f; } - - newparams->Gain = newGainStep*stepcount; } template<ApplyCoeffsT ApplyCoeffs> diff --git a/alc/mixer/mixer_c.cpp b/alc/mixer/mixer_c.cpp index 64d12ef7..c086dd8d 100644 --- a/alc/mixer/mixer_c.cpp +++ b/alc/mixer/mixer_c.cpp @@ -137,12 +137,12 @@ const ALfloat *Resample_<FastBSincTag,CTag>(const InterpState *state, const ALfl template<> void MixHrtf_<CTag>(const float *InSamples, float2 *AccumSamples, const ALuint IrSize, - MixHrtfFilter *hrtfparams, const size_t BufferSize) + const MixHrtfFilter *hrtfparams, const size_t BufferSize) { MixHrtfBase<ApplyCoeffs>(InSamples, AccumSamples, IrSize, hrtfparams, BufferSize); } template<> void MixHrtfBlend_<CTag>(const float *InSamples, float2 *AccumSamples, const ALuint IrSize, - const HrtfFilter *oldparams, MixHrtfFilter *newparams, const size_t BufferSize) + const HrtfFilter *oldparams, const MixHrtfFilter *newparams, const size_t BufferSize) { MixHrtfBlendBase<ApplyCoeffs>(InSamples, AccumSamples, IrSize, oldparams, newparams, BufferSize); diff --git a/alc/mixer/mixer_neon.cpp b/alc/mixer/mixer_neon.cpp index ccfc5761..afc9768a 100644 --- a/alc/mixer/mixer_neon.cpp +++ b/alc/mixer/mixer_neon.cpp @@ -191,12 +191,12 @@ const ALfloat *Resample_<FastBSincTag,NEONTag>(const InterpState *state, template<> void MixHrtf_<NEONTag>(const float *InSamples, float2 *AccumSamples, const ALuint IrSize, - MixHrtfFilter *hrtfparams, const size_t BufferSize) + const MixHrtfFilter *hrtfparams, const size_t BufferSize) { MixHrtfBase<ApplyCoeffs>(InSamples, AccumSamples, IrSize, hrtfparams, BufferSize); } template<> void MixHrtfBlend_<NEONTag>(const float *InSamples, float2 *AccumSamples, const ALuint IrSize, - const HrtfFilter *oldparams, MixHrtfFilter *newparams, const size_t BufferSize) + const HrtfFilter *oldparams, const MixHrtfFilter *newparams, const size_t BufferSize) { MixHrtfBlendBase<ApplyCoeffs>(InSamples, AccumSamples, IrSize, oldparams, newparams, BufferSize); diff --git a/alc/mixer/mixer_sse.cpp b/alc/mixer/mixer_sse.cpp index 2fb856e1..3bc7b30f 100644 --- a/alc/mixer/mixer_sse.cpp +++ b/alc/mixer/mixer_sse.cpp @@ -167,12 +167,12 @@ const ALfloat *Resample_<FastBSincTag,SSETag>(const InterpState *state, template<> void MixHrtf_<SSETag>(const float *InSamples, float2 *AccumSamples, const ALuint IrSize, - MixHrtfFilter *hrtfparams, const size_t BufferSize) + const MixHrtfFilter *hrtfparams, const size_t BufferSize) { MixHrtfBase<ApplyCoeffs>(InSamples, AccumSamples, IrSize, hrtfparams, BufferSize); } template<> void MixHrtfBlend_<SSETag>(const float *InSamples, float2 *AccumSamples, const ALuint IrSize, - const HrtfFilter *oldparams, MixHrtfFilter *newparams, const size_t BufferSize) + const HrtfFilter *oldparams, const MixHrtfFilter *newparams, const size_t BufferSize) { MixHrtfBlendBase<ApplyCoeffs>(InSamples, AccumSamples, IrSize, oldparams, newparams, BufferSize); |