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) {