aboutsummaryrefslogtreecommitdiffstats
path: root/alc
diff options
context:
space:
mode:
Diffstat (limited to 'alc')
-rw-r--r--alc/alu.cpp14
-rw-r--r--alc/effects/convolution.cpp1
2 files changed, 8 insertions, 7 deletions
diff --git a/alc/alu.cpp b/alc/alu.cpp
index 4ec4154e..693288df 100644
--- a/alc/alu.cpp
+++ b/alc/alu.cpp
@@ -771,6 +771,7 @@ void CalcPanningAndFilters(Voice *voice, const float xpos, const float ypos, con
case FmtUHJ2:
case FmtUHJ3:
case FmtUHJ4:
+ case FmtSuperStereo:
DirectChannels = DirectMode::Off;
break;
}
@@ -778,11 +779,12 @@ 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 == FmtUHJ4 || voice->mFmtChannels == FmtSuperStereo)
{
/* Special handling for B-Format sources. */
- if(Device->AvgSpeakerDist > 0.0f && voice->mFmtChannels != FmtUHJ2)
+ if(Device->AvgSpeakerDist > 0.0f && voice->mFmtChannels != FmtUHJ2
+ && voice->mFmtChannels != FmtSuperStereo)
{
if(!(Distance > std::numeric_limits<float>::epsilon()))
{
@@ -883,7 +885,7 @@ void CalcPanningAndFilters(Voice *voice, const float xpos, const float ypos, con
*/
const uint8_t *index_map{
(voice->mFmtChannels == FmtBFormat2D || voice->mFmtChannels == FmtUHJ2
- || voice->mFmtChannels == FmtUHJ3) ?
+ || voice->mFmtChannels == FmtUHJ3 || voice->mFmtChannels == FmtSuperStereo) ?
GetAmbi2DLayout(voice->mAmbiLayout).data() :
GetAmbiLayout(voice->mAmbiLayout).data()};
@@ -1539,10 +1541,8 @@ void CalcSourceParams(Voice *voice, ContextBase *context, bool force)
}
if((voice->mProps.DirectChannels != DirectMode::Off && voice->mFmtChannels != FmtMono
- && voice->mFmtChannels != FmtBFormat2D && voice->mFmtChannels != FmtBFormat3D
- && voice->mFmtChannels != FmtUHJ2 && voice->mFmtChannels != FmtUHJ3
- && voice->mFmtChannels != FmtUHJ3)
- || voice->mProps.mSpatializeMode==SpatializeMode::Off
+ && !IsAmbisonic(voice->mFmtChannels))
+ || voice->mProps.mSpatializeMode == SpatializeMode::Off
|| (voice->mProps.mSpatializeMode==SpatializeMode::Auto && voice->mFmtChannels != FmtMono))
CalcNonAttnSourceParams(voice, &voice->mProps, context);
else
diff --git a/alc/effects/convolution.cpp b/alc/effects/convolution.cpp
index 300ddb17..a1d49be4 100644
--- a/alc/effects/convolution.cpp
+++ b/alc/effects/convolution.cpp
@@ -444,6 +444,7 @@ void ConvolutionState::update(const ContextBase *context, const EffectSlot *slot
switch(mChannels)
{
case FmtMono: chanmap = MonoMap; break;
+ case FmtSuperStereo:
case FmtStereo: chanmap = StereoMap; break;
case FmtRear: chanmap = RearMap; break;
case FmtQuad: chanmap = QuadMap; break;