VPAD: report gamepad volume slider position even when audio playback is disabled or failed to init

This commit is contained in:
goeiecool9999 2025-09-11 13:13:24 +02:00
parent 158c4e17a2
commit 492116a6ba
2 changed files with 6 additions and 10 deletions

View file

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

View file

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