mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-04-24 23:32:39 -05:00
AudioPane: Fix WASAPI default device combo selection
Set the default value of `Config::MAIN_WASAPI_DEVICE` to `default` instead of `Default`. This fixes an issue where `AudioPane`'s `Output Device` combo would be blank if `WASAPI` was selected and the user had never changed the value of `Output Device`. We don't have to worry about backward compatibility with users who have `Default` in their config because config values aren't written unless they've been changed at some point from the default, and the combo has always saved `default` instead of `Default`. Audio still worked during emulation in this situation because the fallback for an unrecognized device name is the default device. To help prevent similar situations in the future references to `MAIN_WASAPI_DEVICE`'s default value now call `GetDefaultValue` instead of hardcoding the expected default, or use the new helper function `Config::IsDefaultValue`.
This commit is contained in:
parent
0e92a14703
commit
6b2a8eff15
|
|
@ -176,7 +176,7 @@ bool WASAPIStream::SetRunning(bool running)
|
|||
|
||||
HRESULT result;
|
||||
|
||||
if (Config::Get(Config::MAIN_WASAPI_DEVICE) == "default")
|
||||
if (Config::IsDefaultValue(Config::MAIN_WASAPI_DEVICE))
|
||||
{
|
||||
result = m_enumerator->GetDefaultAudioEndpoint(eRender, eConsole, &device);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,6 +135,12 @@ void DeleteKey(LayerType layer, const Info<T>& info)
|
|||
OnConfigChanged();
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
bool IsDefaultValue(const Info<T>& info)
|
||||
{
|
||||
return Get(info) == info.GetDefaultValue();
|
||||
}
|
||||
|
||||
// Used to defer OnConfigChanged until after the completion of many config changes.
|
||||
class ConfigChangeCallbackGuard
|
||||
{
|
||||
|
|
|
|||
|
|
@ -319,7 +319,7 @@ const Info<bool> MAIN_AUDIO_MUTED{{System::Main, "DSP", "Muted"}, false};
|
|||
const Info<bool> MAIN_AUDIO_MUTE_ON_DISABLED_SPEED_LIMIT{
|
||||
{System::Main, "DSP", "MuteOnDisabledSpeedLimit"}, false};
|
||||
#ifdef _WIN32
|
||||
const Info<std::string> MAIN_WASAPI_DEVICE{{System::Main, "DSP", "WASAPIDevice"}, "Default"};
|
||||
const Info<std::string> MAIN_WASAPI_DEVICE{{System::Main, "DSP", "WASAPIDevice"}, "default"};
|
||||
#endif
|
||||
|
||||
bool ShouldUseDPL2Decoder()
|
||||
|
|
|
|||
|
|
@ -123,8 +123,9 @@ void AudioPane::CreateWidgets()
|
|||
|
||||
#ifdef _WIN32
|
||||
std::vector<std::pair<QString, QString>> wasapi_options;
|
||||
wasapi_options.push_back(
|
||||
std::pair<QString, QString>{tr("Default Device"), QStringLiteral("default")});
|
||||
const auto default_device_config_value =
|
||||
QString::fromStdString(Config::MAIN_WASAPI_DEVICE.GetDefaultValue());
|
||||
wasapi_options.emplace_back(tr("Default Device"), default_device_config_value);
|
||||
|
||||
for (auto string : WASAPIStream::GetAvailableDevices())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ void HandleDiscordJoin(const char* join_secret)
|
|||
if (event_handler == nullptr)
|
||||
return;
|
||||
|
||||
if (Config::Get(Config::NETPLAY_NICKNAME) == Config::NETPLAY_NICKNAME.GetDefaultValue())
|
||||
if (Config::IsDefaultValue(Config::NETPLAY_NICKNAME))
|
||||
Config::SetCurrent(Config::NETPLAY_NICKNAME, username);
|
||||
|
||||
std::string secret(join_secret);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user