Skip to content

Commit

Permalink
AudioCommon: if backend is unknown, use default backend
Browse files Browse the repository at this point in the history
  • Loading branch information
ligfx committed Sep 14, 2019
1 parent 0f3695a commit 71c3c56
Showing 1 changed file with 23 additions and 9 deletions.
32 changes: 23 additions & 9 deletions Source/Core/AudioCommon/AudioCommon.cpp
Expand Up @@ -27,23 +27,37 @@ static bool s_sound_stream_running = false;
constexpr int AUDIO_VOLUME_MIN = 0;
constexpr int AUDIO_VOLUME_MAX = 100;

void InitSoundStream()
static std::unique_ptr<SoundStream> CreateSoundStreamForBackend(std::string_view backend)
{
std::string backend = SConfig::GetInstance().sBackend;
if (backend == BACKEND_CUBEB)
g_sound_stream = std::make_unique<CubebStream>();
return std::make_unique<CubebStream>();
else if (backend == BACKEND_OPENAL && OpenALStream::isValid())
g_sound_stream = std::make_unique<OpenALStream>();
return std::make_unique<OpenALStream>();
else if (backend == BACKEND_NULLSOUND)
g_sound_stream = std::make_unique<NullSound>();
return std::make_unique<NullSound>();
else if (backend == BACKEND_ALSA && AlsaSound::isValid())
g_sound_stream = std::make_unique<AlsaSound>();
return std::make_unique<AlsaSound>();
else if (backend == BACKEND_PULSEAUDIO && PulseAudio::isValid())
g_sound_stream = std::make_unique<PulseAudio>();
return std::make_unique<PulseAudio>();
else if (backend == BACKEND_OPENSLES && OpenSLESStream::isValid())
g_sound_stream = std::make_unique<OpenSLESStream>();
return std::make_unique<OpenSLESStream>();
else if (backend == BACKEND_WASAPI && WASAPIStream::isValid())
g_sound_stream = std::make_unique<WASAPIStream>();
return std::make_unique<WASAPIStream>();
return {};
}

void InitSoundStream()
{
std::string backend = SConfig::GetInstance().sBackend;
g_sound_stream = CreateSoundStreamForBackend(backend);

if (!g_sound_stream)
{
WARN_LOG(AUDIO, "Unknown backend %s, using %s instead.", backend.c_str(),
GetDefaultSoundBackend().c_str());
backend = GetDefaultSoundBackend();
g_sound_stream = CreateSoundStreamForBackend(GetDefaultSoundBackend());
}

if (!g_sound_stream || !g_sound_stream->Init())
{
Expand Down

0 comments on commit 71c3c56

Please sign in to comment.