diff --git a/Source/Core/AudioCommon/AudioCommon.cpp b/Source/Core/AudioCommon/AudioCommon.cpp index 1ffb323a3f..86d3d5943e 100644 --- a/Source/Core/AudioCommon/AudioCommon.cpp +++ b/Source/Core/AudioCommon/AudioCommon.cpp @@ -92,6 +92,22 @@ void ShutdownSoundStream() INFO_LOG(AUDIO, "Done shutting down sound stream"); } +std::string GetDefaultSoundBackend() +{ + std::string backend = BACKEND_NULLSOUND; +#if defined __linux__ + if (AlsaSound::isValid()) + backend = BACKEND_ALSA; +#elif defined __APPLE__ + backend = BACKEND_COREAUDIO; +#elif defined _WIN32 + backend = BACKEND_XAUDIO2; +#elif defined ANDROID + backend = BACKEND_OPENSLES; +#endif + return backend; +} + std::vector GetSoundBackends() { std::vector backends; diff --git a/Source/Core/AudioCommon/AudioCommon.h b/Source/Core/AudioCommon/AudioCommon.h index 249f608aad..8ba06ccac2 100644 --- a/Source/Core/AudioCommon/AudioCommon.h +++ b/Source/Core/AudioCommon/AudioCommon.h @@ -18,6 +18,7 @@ namespace AudioCommon { void InitSoundStream(); void ShutdownSoundStream(); +std::string GetDefaultSoundBackend(); std::vector GetSoundBackends(); bool SupportsDPL2Decoder(const std::string& backend); bool SupportsLatencyControl(const std::string& backend); diff --git a/Source/Core/Core/ConfigManager.cpp b/Source/Core/Core/ConfigManager.cpp index edb2386bd4..8e7837c90a 100644 --- a/Source/Core/Core/ConfigManager.cpp +++ b/Source/Core/Core/ConfigManager.cpp @@ -6,6 +6,8 @@ #include #include +#include "AudioCommon/AudioCommon.h" + #include "Common/CDUtils.h" #include "Common/CommonPaths.h" #include "Common/CommonTypes.h" @@ -613,17 +615,7 @@ void SConfig::LoadDSPSettings(IniFile& ini) dsp->Get("DumpAudio", &m_DumpAudio, false); dsp->Get("DumpAudioSilent", &m_DumpAudioSilent, false); dsp->Get("DumpUCode", &m_DumpUCode, false); -#if defined __linux__ && HAVE_ALSA - dsp->Get("Backend", &sBackend, BACKEND_ALSA); -#elif defined __APPLE__ - dsp->Get("Backend", &sBackend, BACKEND_COREAUDIO); -#elif defined _WIN32 - dsp->Get("Backend", &sBackend, BACKEND_XAUDIO2); -#elif defined ANDROID - dsp->Get("Backend", &sBackend, BACKEND_OPENSLES); -#else - dsp->Get("Backend", &sBackend, BACKEND_NULLSOUND); -#endif + dsp->Get("Backend", &sBackend, AudioCommon::GetDefaultSoundBackend()); dsp->Get("Volume", &m_Volume, 100); dsp->Get("CaptureLog", &m_DSPCaptureLog, false);