From 54c4bea48791f353baf66917f967ef3a39af9b0b Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Wed, 15 Dec 2021 02:01:22 -0800 Subject: Add source properties for Super Stereo When playing a stereo format, enabling Super Stereo causes the source to behave as a B-Format source, with a variable width control. --- al/source.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'al/source.h') diff --git a/al/source.h b/al/source.h index 4d1f66dc..474d0a91 100644 --- a/al/source.h +++ b/al/source.h @@ -13,6 +13,7 @@ #include "alc/alu.h" #include "alc/context.h" +#include "alc/inprogext.h" #include "aldeque.h" #include "almalloc.h" #include "alnumeric.h" @@ -25,6 +26,11 @@ struct ALbuffer; struct ALeffectslot; +enum class SourceStereo : bool { + Normal = AL_NORMAL_SOFT, + Enhanced = AL_SUPER_STEREO_SOFT +}; + #define DEFAULT_SENDS 2 #define INVALID_VOICE_IDX static_cast(-1) @@ -59,6 +65,7 @@ struct ALsource { Resampler mResampler{ResamplerDefault}; DirectMode DirectChannels{DirectMode::Off}; SpatializeMode mSpatialize{SpatializeMode::Auto}; + SourceStereo mStereoMode{SourceStereo::Normal}; bool DryGainHFAuto{true}; bool WetGainAuto{true}; @@ -75,6 +82,7 @@ struct ALsource { std::array StereoPan{{Deg2Rad( 30.0f), Deg2Rad(-30.0f)}}; float Radius{0.0f}; + float EnhWidth{0.593f}; /** Direct filter and auxiliary send info. */ struct { -- cgit v1.2.3