aboutsummaryrefslogtreecommitdiffstats
path: root/al/source.h
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2021-12-15 02:01:22 -0800
committerChris Robinson <[email protected]>2021-12-15 02:01:22 -0800
commit54c4bea48791f353baf66917f967ef3a39af9b0b (patch)
tree92ab9aad66fa8499cf338e22ce127c8db12d1cfa /al/source.h
parentb489705b25bb3967e04f7099cb21797783ccf7c0 (diff)
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.
Diffstat (limited to 'al/source.h')
-rw-r--r--al/source.h8
1 files changed, 8 insertions, 0 deletions
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<ALuint>(-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<float,2> StereoPan{{Deg2Rad( 30.0f), Deg2Rad(-30.0f)}};
float Radius{0.0f};
+ float EnhWidth{0.593f};
/** Direct filter and auxiliary send info. */
struct {