diff options
author | Chris Robinson <[email protected]> | 2019-03-22 19:25:55 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2019-03-22 19:25:55 -0700 |
commit | 3a6e741e900bbfbee99906c780402455637c223a (patch) | |
tree | 814197465cfdc027ac8c7c485f0f33ef2ffea08f /OpenAL32 | |
parent | 92adfaebcecd305bc6fce43a40b41971bfe564b3 (diff) |
Use MixParams for the wet buffers
Diffstat (limited to 'OpenAL32')
-rw-r--r-- | OpenAL32/Include/alAuxEffectSlot.h | 6 | ||||
-rw-r--r-- | OpenAL32/Include/alu.h | 8 |
2 files changed, 5 insertions, 9 deletions
diff --git a/OpenAL32/Include/alAuxEffectSlot.h b/OpenAL32/Include/alAuxEffectSlot.h index b3323578..c6f85a93 100644 --- a/OpenAL32/Include/alAuxEffectSlot.h +++ b/OpenAL32/Include/alAuxEffectSlot.h @@ -71,13 +71,15 @@ struct ALeffectslot { /* Self ID */ ALuint id{}; + /* Mixing buffer used by the Wet mix. */ + al::vector<std::array<ALfloat,BUFFERSIZE>,16> MixBuffer; + /* Wet buffer configuration is ACN channel order with N3D scaling. * Consequently, effects that only want to work with mono input can use * channel 0 by itself. Effects that want multichannel can process the * ambisonics signal and make a B-Format source pan. */ - al::vector<std::array<ALfloat,BUFFERSIZE>,16> WetBuffer; - BFChannelConfig ChanMap[MAX_AMBI_CHANNELS]; + MixParams Wet; ALeffectslot() { PropsClean.test_and_set(std::memory_order_relaxed); } ALeffectslot(const ALeffectslot&) = delete; diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h index 952d1004..6cdd7d9f 100644 --- a/OpenAL32/Include/alu.h +++ b/OpenAL32/Include/alu.h @@ -421,8 +421,6 @@ inline float ScaleAzimuthFront(float azimuth, float scale) } -void ComputePanningGainsBF(const BFChannelConfig *chanmap, ALsizei numchans, const ALfloat*RESTRICT coeffs, ALfloat ingain, ALfloat (&gains)[MAX_OUTPUT_CHANNELS]); - /** * ComputePanGains * @@ -431,12 +429,8 @@ void ComputePanningGainsBF(const BFChannelConfig *chanmap, ALsizei numchans, con * coeffs are a 'slice' of a transform matrix for the input channel, used to * scale and orient the sound samples. */ -inline void ComputePanGains(const MixParams *dry, const ALfloat*RESTRICT coeffs, ALfloat ingain, ALfloat (&gains)[MAX_OUTPUT_CHANNELS]) -{ - ComputePanningGainsBF(dry->AmbiMap.data(), dry->NumChannels, coeffs, ingain, gains); -} +void ComputePanGains(const MixParams *mix, const ALfloat*RESTRICT coeffs, ALfloat ingain, ALfloat (&gains)[MAX_OUTPUT_CHANNELS]); -void ComputePanGains(const ALeffectslot *slot, const ALfloat*RESTRICT coeffs, ALfloat ingain, ALfloat (&gains)[MAX_OUTPUT_CHANNELS]); inline std::array<ALfloat,MAX_AMBI_CHANNELS> GetAmbiIdentityRow(size_t i) noexcept { |