From 492116a6baa5b3384666c671e7dbe819dfe5f4a9 Mon Sep 17 00:00:00 2001 From: goeiecool9999 <7033575+goeiecool9999@users.noreply.github.com> Date: Thu, 11 Sep 2025 13:13:24 +0200 Subject: [PATCH] VPAD: report gamepad volume slider position even when audio playback is disabled or failed to init --- src/Cafe/OS/libs/snd_core/ax_out.cpp | 3 +-- src/gui/wxgui/GeneralSettings2.cpp | 13 +++++-------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/Cafe/OS/libs/snd_core/ax_out.cpp b/src/Cafe/OS/libs/snd_core/ax_out.cpp index fe32cfb4..55e97966 100644 --- a/src/Cafe/OS/libs/snd_core/ax_out.cpp +++ b/src/Cafe/OS/libs/snd_core/ax_out.cpp @@ -413,13 +413,12 @@ namespace snd_core } } + g_padVolume = GetConfig().pad_volume; if (!g_padAudio) { try { g_padAudio = IAudioAPI::CreateDeviceFromConfig(IAudioAPI::AudioType::Gamepad, 48000, snd_core::AX_SAMPLES_PER_3MS_48KHZ * AX_FRAMES_PER_GROUP, 16); - if(g_padAudio) - g_padVolume = g_padAudio->GetVolume(); } catch (std::runtime_error& ex) { diff --git a/src/gui/wxgui/GeneralSettings2.cpp b/src/gui/wxgui/GeneralSettings2.cpp index f937549d..85648be6 100644 --- a/src/gui/wxgui/GeneralSettings2.cpp +++ b/src/gui/wxgui/GeneralSettings2.cpp @@ -1191,10 +1191,9 @@ void GeneralSettings2::OnVolumeChanged(wxCommandEvent& event) if(event.GetEventObject() == m_pad_volume) { if (g_padAudio) - { g_padAudio->SetVolume(event.GetInt()); - g_padVolume = event.GetInt(); - } + + g_padVolume = event.GetInt(); } else if (event.GetEventObject() == m_tv_volume) { @@ -1216,11 +1215,8 @@ void GeneralSettings2::OnInputVolumeChanged(wxCommandEvent& event) { std::shared_lock lock(g_audioMutex); if (g_padAudio) - { g_padAudio->SetInputVolume(event.GetInt()); - g_padVolume = event.GetInt(); - } - + event.Skip(); } @@ -1913,11 +1909,12 @@ void GeneralSettings2::UpdateAudioDevice() else channels = CemuConfig::AudioChannelsToNChannels(config.pad_channels); + g_padVolume = m_pad_volume->GetValue(); + try { g_padAudio = IAudioAPI::CreateDevice((IAudioAPI::AudioAPI)config.audio_api, description->GetDescription(), 48000, channels, snd_core::AX_SAMPLES_PER_3MS_48KHZ * AX_FRAMES_PER_GROUP, 16); g_padAudio->SetVolume(m_pad_volume->GetValue()); - g_padVolume = m_pad_volume->GetValue(); } catch (std::runtime_error& ex) {