aboutsummaryrefslogtreecommitdiffstats
path: root/alc/alc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'alc/alc.cpp')
-rw-r--r--alc/alc.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/alc/alc.cpp b/alc/alc.cpp
index 4ba1ee48..44cc0f93 100644
--- a/alc/alc.cpp
+++ b/alc/alc.cpp
@@ -1835,6 +1835,20 @@ ALCenum UpdateDeviceParams(ALCdevice *device, const int *attrList)
case DevFmtAmbi3D: break;
}
+ if(device->Type != DeviceType::Loopback)
+ {
+ if(auto modeopt = device->configValue<std::string>(nullptr, "stereo-mode"))
+ {
+ const char *mode{modeopt->c_str()};
+ if(al::strcasecmp(mode, "headphones") == 0)
+ device->Flags.set(DirectEar);
+ else if(al::strcasecmp(mode, "speakers") == 0)
+ device->Flags.reset(DirectEar);
+ else if(al::strcasecmp(mode, "auto") != 0)
+ ERR("Unexpected stereo-mode: %s\n", mode);
+ }
+ }
+
aluInitRenderer(device, hrtf_id, hrtfreq);
device->NumAuxSends = new_sends;