From 94670baa64c51169919af037b9a72f7369540ea9 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sun, 27 Aug 2023 13:21:16 +1000 Subject: [PATCH] Qt: Fix global volume slider overriding per-game --- pcsx2-qt/Settings/AudioSettingsWidget.cpp | 24 +++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/pcsx2-qt/Settings/AudioSettingsWidget.cpp b/pcsx2-qt/Settings/AudioSettingsWidget.cpp index f567c20eec..0887ee8545 100644 --- a/pcsx2-qt/Settings/AudioSettingsWidget.cpp +++ b/pcsx2-qt/Settings/AudioSettingsWidget.cpp @@ -251,23 +251,27 @@ void AudioSettingsWidget::volumeChanged(int value) sif->SetIntValue("SPU2/Mixing", "FinalVolume", value); sif->Save(); + + // There's two separate interfaces - one we're editing, and the active one. + // We need to reload the latter. + g_emu_thread->reloadGameSettings(); } else { Host::SetBaseIntSettingValue("SPU2/Mixing", "FinalVolume", value); Host::CommitBaseSettingChanges(); - } - // Push through to emu thread since we're not applying. - if (QtHost::IsVMValid()) - { - Host::RunOnCPUThread([value]() { - if (!VMManager::HasValidVM()) - return; + // Push through to emu thread since we're not applying. + if (QtHost::IsVMValid()) + { + Host::RunOnCPUThread([]() { + if (!VMManager::HasValidVM()) + return; - EmuConfig.SPU2.FinalVolume = value; - SPU2::SetOutputVolume(value); - }); + EmuConfig.SPU2.FinalVolume = Host::GetIntSettingValue("SPU2/Mixing", "FinalVolume", DEFAULT_VOLUME); + SPU2::SetOutputVolume(EmuConfig.SPU2.FinalVolume); + }); + } } updateVolumeLabel();