diff options
Diffstat (limited to 'alc')
-rw-r--r-- | alc/alc.cpp | 4 | ||||
-rw-r--r-- | alc/alu.cpp | 3 | ||||
-rw-r--r-- | alc/inprogext.h | 5 |
3 files changed, 12 insertions, 0 deletions
diff --git a/alc/alc.cpp b/alc/alc.cpp index 9f2abc13..54162d14 100644 --- a/alc/alc.cpp +++ b/alc/alc.cpp @@ -869,6 +869,10 @@ constexpr struct { DECL(AL_FORMAT_UHJ4CHN8_SOFT), DECL(AL_FORMAT_UHJ4CHN16_SOFT), DECL(AL_FORMAT_UHJ4CHN_FLOAT32_SOFT), + DECL(AL_STEREO_MODE_SOFT), + DECL(AL_NORMAL_SOFT), + DECL(AL_SUPER_STEREO_SOFT), + DECL(AL_SUPER_STEREO_WIDTH_SOFT), DECL(AL_STOP_SOURCES_ON_DISCONNECT_SOFT), }; diff --git a/alc/alu.cpp b/alc/alu.cpp index 93e18c94..54bb7001 100644 --- a/alc/alu.cpp +++ b/alc/alu.cpp @@ -777,6 +777,9 @@ void CalcPanningAndFilters(Voice *voice, const float xpos, const float ypos, con } voice->mFlags &= ~(VoiceHasHrtf | VoiceHasNfc); + if(auto *decoder{voice->mDecoder.get()}) + decoder->mWidthControl = props->EnhWidth; + if(IsAmbisonic(voice->mFmtChannels)) { /* Special handling for B-Format and UHJ sources. */ diff --git a/alc/inprogext.h b/alc/inprogext.h index 0875e5c9..99d997f5 100644 --- a/alc/inprogext.h +++ b/alc/inprogext.h @@ -87,6 +87,11 @@ ALCboolean ALC_APIENTRY alcReopenDeviceSOFT(ALCdevice *device, const ALCchar *de #define AL_FORMAT_UHJ4CHN8_SOFT 0x19A8 #define AL_FORMAT_UHJ4CHN16_SOFT 0x19A9 #define AL_FORMAT_UHJ4CHN_FLOAT32_SOFT 0x19AA + +#define AL_STEREO_MODE_SOFT 0x19B0 +#define AL_NORMAL_SOFT 0x0000 +#define AL_SUPER_STEREO_SOFT 0x0001 +#define AL_SUPER_STEREO_WIDTH_SOFT 0x19B1 #endif #ifndef AL_SOFT_hold_on_disconnect |