Make an inline function to check for 2D ambisonic formats
parent
5e3fcb3a93
commit
953745d386
10
alc/alu.cpp
10
alc/alu.cpp
|
@ -777,11 +777,9 @@ void CalcPanningAndFilters(Voice *voice, const float xpos, const float ypos, con
|
|||
}
|
||||
|
||||
voice->mFlags &= ~(VoiceHasHrtf | VoiceHasNfc);
|
||||
if(voice->mFmtChannels == FmtBFormat2D || voice->mFmtChannels == FmtBFormat3D
|
||||
|| voice->mFmtChannels == FmtUHJ2 || voice->mFmtChannels == FmtUHJ3
|
||||
|| voice->mFmtChannels == FmtUHJ4 || voice->mFmtChannels == FmtSuperStereo)
|
||||
if(IsAmbisonic(voice->mFmtChannels))
|
||||
{
|
||||
/* Special handling for B-Format sources. */
|
||||
/* Special handling for B-Format and UHJ sources. */
|
||||
|
||||
if(Device->AvgSpeakerDist > 0.0f && voice->mFmtChannels != FmtUHJ2
|
||||
&& voice->mFmtChannels != FmtSuperStereo)
|
||||
|
@ -883,9 +881,7 @@ void CalcPanningAndFilters(Voice *voice, const float xpos, const float ypos, con
|
|||
/* Convert the rotation matrix for input ordering and scaling, and
|
||||
* whether input is 2D or 3D.
|
||||
*/
|
||||
const uint8_t *index_map{
|
||||
(voice->mFmtChannels == FmtBFormat2D || voice->mFmtChannels == FmtUHJ2
|
||||
|| voice->mFmtChannels == FmtUHJ3 || voice->mFmtChannels == FmtSuperStereo) ?
|
||||
const uint8_t *index_map{Is2DAmbisonic(voice->mFmtChannels) ?
|
||||
GetAmbi2DLayout(voice->mAmbiLayout).data() :
|
||||
GetAmbiLayout(voice->mAmbiLayout).data()};
|
||||
|
||||
|
|
|
@ -410,7 +410,7 @@ void ConvolutionState::update(const ContextBase *context, const EffectSlot *slot
|
|||
(*mChans)[0].Target[lidx] = gain;
|
||||
(*mChans)[1].Target[ridx] = gain;
|
||||
}
|
||||
else if(mChannels == FmtBFormat3D || mChannels == FmtBFormat2D)
|
||||
else if(IsBFormat(mChannels))
|
||||
{
|
||||
DeviceBase *device{context->mDevice};
|
||||
if(device->mAmbiOrder > mAmbiOrder)
|
||||
|
|
|
@ -66,6 +66,12 @@ constexpr bool IsUHJ(FmtChannels chans) noexcept
|
|||
constexpr bool IsAmbisonic(FmtChannels chans) noexcept
|
||||
{ return IsBFormat(chans) || IsUHJ(chans); }
|
||||
|
||||
constexpr bool Is2DAmbisonic(FmtChannels chans) noexcept
|
||||
{
|
||||
return chans == FmtBFormat2D || chans == FmtUHJ2 || chans == FmtUHJ3
|
||||
|| chans == FmtSuperStereo;
|
||||
}
|
||||
|
||||
|
||||
using CallbackType = int(*)(void*, void*, int);
|
||||
|
||||
|
|
|
@ -839,9 +839,7 @@ void Voice::prepare(DeviceBase *device)
|
|||
*/
|
||||
if(mAmbiOrder && device->mAmbiOrder > mAmbiOrder)
|
||||
{
|
||||
const uint8_t *OrderFromChan{(mFmtChannels == FmtBFormat2D
|
||||
|| mFmtChannels == FmtUHJ2 || mFmtChannels == FmtUHJ3
|
||||
|| mFmtChannels == FmtSuperStereo) ?
|
||||
const uint8_t *OrderFromChan{Is2DAmbisonic(mFmtChannels) ?
|
||||
AmbiIndex::OrderFrom2DChannel().data() : AmbiIndex::OrderFromChannel().data()};
|
||||
const auto scales = AmbiScale::GetHFOrderScales(mAmbiOrder, device->mAmbiOrder);
|
||||
|
||||
|
|
Loading…
Reference in New Issue