From cef0f5b5a738c1e2ef32efd6c1010f5d97457d56 Mon Sep 17 00:00:00 2001 From: MerryMage Date: Sat, 10 Dec 2016 01:06:53 +0000 Subject: audio_core: SelectSink should default to auto if sink_id is invalid --- src/audio_core/audio_core.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/audio_core/audio_core.cpp b/src/audio_core/audio_core.cpp index 49260de7c..1065e2222 100644 --- a/src/audio_core/audio_core.cpp +++ b/src/audio_core/audio_core.cpp @@ -56,22 +56,17 @@ void AddAddressSpace(Kernel::VMManager& address_space) { } void SelectSink(std::string sink_id) { - if (sink_id == "auto") { - // Auto-select. - // g_sink_details is ordered in terms of desirability, with the best choice at the front. - const auto& sink_detail = g_sink_details.front(); - DSP::HLE::SetSink(sink_detail.factory()); - return; - } - auto iter = std::find_if(g_sink_details.begin(), g_sink_details.end(), [sink_id](const auto& sink_detail) { return sink_detail.id == sink_id; }); - if (iter == g_sink_details.end()) { - LOG_ERROR(Audio, "AudioCore::SelectSink given invalid sink_id"); - DSP::HLE::SetSink(std::make_unique()); - return; + if (sink_id == "auto" || iter == g_sink_details.end()) { + if (sink_id != "auto") { + LOG_ERROR(Audio, "AudioCore::SelectSink given invalid sink_id %s", sink_id.c_str()); + } + // Auto-select. + // g_sink_details is ordered in terms of desirability, with the best choice at the front. + iter = g_sink_details.begin(); } DSP::HLE::SetSink(iter->factory()); -- cgit v1.2.3