diff options
Diffstat (limited to '')
-rw-r--r-- | src/audio_core/audio_core.cpp | 19 |
1 files 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<NullSink>()); - 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()); |