From cef0f5b5a738c1e2ef32efd6c1010f5d97457d56 Mon Sep 17 00:00:00 2001
From: MerryMage <MerryMage@users.noreply.github.com>
Date: Sat, 10 Dec 2016 01:06:53 +0000
Subject: [PATCH] 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<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());