diff options
Diffstat (limited to 'OpenAL32')
-rw-r--r-- | OpenAL32/Include/alAuxEffectSlot.h | 4 | ||||
-rw-r--r-- | OpenAL32/Include/alu.h | 22 |
2 files changed, 7 insertions, 19 deletions
diff --git a/OpenAL32/Include/alAuxEffectSlot.h b/OpenAL32/Include/alAuxEffectSlot.h index c4d662f1..03ee97d6 100644 --- a/OpenAL32/Include/alAuxEffectSlot.h +++ b/OpenAL32/Include/alAuxEffectSlot.h @@ -145,8 +145,8 @@ typedef struct ALeffectslot { * * Channel 3 is OpenAL -Z * sqrt(3) * 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 pan (ComputeFirstOrderGains) for - * first-order device output (FOAOut). + * ambisonics signal and make a B-Format source pan for first-order device + * output (FOAOut). */ alignas(16) ALfloat WetBuffer[MAX_EFFECT_CHANNELS][BUFFERSIZE]; } ALeffectslot; diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h index ac0c866f..c572fd71 100644 --- a/OpenAL32/Include/alu.h +++ b/OpenAL32/Include/alu.h @@ -495,12 +495,14 @@ void ComputePanningGainsMC(const ChannelConfig *chancoeffs, ALsizei numchans, AL void ComputePanningGainsBF(const BFChannelConfig *chanmap, ALsizei numchans, const ALfloat*restrict coeffs, ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS]); /** - * ComputeDryPanGains + * ComputePanGains * * Computes panning gains using the given channel decoder coefficients and the - * pre-calculated direction or angle coefficients. + * pre-calculated direction or angle coefficients. For B-Format sources, the + * coeffs are a 'slice' of a transform matrix for the input channel, used to + * scale and orient the sound samples. */ -inline void ComputeDryPanGains(const MixParams *dry, const ALfloat coeffs[MAX_AMBI_COEFFS], ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS]) +inline void ComputePanGains(const MixParams *dry, const ALfloat*restrict coeffs, ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS]) { if(dry->CoeffCount > 0) ComputePanningGainsMC(dry->Ambi.Coeffs, dry->NumChannels, dry->CoeffCount, @@ -508,20 +510,6 @@ inline void ComputeDryPanGains(const MixParams *dry, const ALfloat coeffs[MAX_AM else ComputePanningGainsBF(dry->Ambi.Map, dry->NumChannels, coeffs, ingain, gains); } -/** - * ComputeFirstOrderGains - * - * Sets channel gains for a first-order ambisonics input channel. The matrix is - * a 1x4 'slice' of a transform matrix for the input channel, used to scale and - * orient the sound samples. - */ -inline void ComputeFirstOrderGains(const MixParams *foa, const ALfloat mtx[4], ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS]) -{ - if(foa->CoeffCount > 0) - ComputePanningGainsMC(foa->Ambi.Coeffs, foa->NumChannels, 4, mtx, ingain, gains); - else - ComputePanningGainsBF(foa->Ambi.Map, foa->NumChannels, mtx, ingain, gains); -} ALboolean MixSource(struct ALvoice *voice, ALuint SourceID, ALCcontext *Context, ALsizei SamplesToDo); |