From 08787ebc4a53bb9e64b3bb3c87f20e63c0d87841 Mon Sep 17 00:00:00 2001 From: LAGonauta Date: Mon, 11 Nov 2019 08:03:36 -0300 Subject: [PATCH] Centralize logic to detect when the DPL2 decoder should be used. --- Source/Core/AudioCommon/CubebStream.cpp | 2 +- Source/Core/AudioCommon/OpenALStream.cpp | 3 +-- Source/Core/AudioCommon/PulseAudioStream.cpp | 2 +- Source/Core/Core/ConfigManager.cpp | 5 +++++ Source/Core/Core/ConfigManager.h | 3 +++ 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Source/Core/AudioCommon/CubebStream.cpp b/Source/Core/AudioCommon/CubebStream.cpp index 768ea38467..5c3100c52c 100644 --- a/Source/Core/AudioCommon/CubebStream.cpp +++ b/Source/Core/AudioCommon/CubebStream.cpp @@ -37,7 +37,7 @@ bool CubebStream::Init() if (!m_ctx) return false; - m_stereo = !SConfig::GetInstance().bDPL2Decoder || SConfig::GetInstance().bDSPHLE; + m_stereo = !SConfig::GetInstance().ShouldUseDPL2Decoder(); cubeb_stream_params params; params.rate = m_mixer->GetSampleRate(); diff --git a/Source/Core/AudioCommon/OpenALStream.cpp b/Source/Core/AudioCommon/OpenALStream.cpp index 51530088b2..887e0f97f2 100644 --- a/Source/Core/AudioCommon/OpenALStream.cpp +++ b/Source/Core/AudioCommon/OpenALStream.cpp @@ -221,8 +221,7 @@ void OpenALStream::SoundLoop() bool float32_capable = palIsExtensionPresent("AL_EXT_float32") != 0; bool surround_capable = palIsExtensionPresent("AL_EXT_MCFORMATS") || IsCreativeXFi(); - bool use_surround = - SConfig::GetInstance().bDPL2Decoder && surround_capable && !SConfig::GetInstance().bDSPHLE; + bool use_surround = SConfig::GetInstance().ShouldUseDPL2Decoder() && surround_capable; // As there is no extension to check for 32-bit fixed point support // and we know that only a X-Fi with hardware OpenAL supports it, diff --git a/Source/Core/AudioCommon/PulseAudioStream.cpp b/Source/Core/AudioCommon/PulseAudioStream.cpp index 3d05cc610b..8372683a25 100644 --- a/Source/Core/AudioCommon/PulseAudioStream.cpp +++ b/Source/Core/AudioCommon/PulseAudioStream.cpp @@ -19,7 +19,7 @@ PulseAudio::PulseAudio() = default; bool PulseAudio::Init() { - m_stereo = !SConfig::GetInstance().bDPL2Decoder || SConfig::GetInstance().bDSPHLE; + m_stereo = !SConfig::GetInstance().ShouldUseDPL2Decoder(); m_channels = m_stereo ? 2 : 6; // will tell PA we use a Stereo or 5.0 channel setup NOTICE_LOG(AUDIO, "PulseAudio backend using %d channels", m_channels); diff --git a/Source/Core/Core/ConfigManager.cpp b/Source/Core/Core/ConfigManager.cpp index 1aa1b3f0a6..970dff886d 100644 --- a/Source/Core/Core/ConfigManager.cpp +++ b/Source/Core/Core/ConfigManager.cpp @@ -1063,3 +1063,8 @@ IniFile SConfig::LoadGameIni(const std::string& id, std::optional revision) game_ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + filename, true); return game_ini; } + +bool SConfig::ShouldUseDPL2Decoder() const +{ + return bDPL2Decoder && !bDSPHLE; +} diff --git a/Source/Core/Core/ConfigManager.h b/Source/Core/Core/ConfigManager.h index 36f7ac353a..6de44b41e1 100644 --- a/Source/Core/Core/ConfigManager.h +++ b/Source/Core/Core/ConfigManager.h @@ -173,6 +173,9 @@ struct SConfig bool bEnableCustomRTC; u32 m_customRTCValue; + // DPL2 + bool ShouldUseDPL2Decoder() const; + DiscIO::Region m_region; std::string m_strVideoBackend;