diff options
Diffstat (limited to 'alc/alc.cpp')
-rw-r--r-- | alc/alc.cpp | 14 |
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; |