From 7a50d56d0eadab17c8f190e2e2341e985f6b8115 Mon Sep 17 00:00:00 2001
From: bunnei <bunneidev@gmail.com>
Date: Sun, 14 Jan 2018 21:29:11 -0500
Subject: [PATCH] audio: Stub out AudOutU::ListAudioOuts.

---
 src/core/hle/service/audio/audio.cpp    | 17 ++++++++++++++++
 src/core/hle/service/audio/audio.h      | 16 +++++++++++++++
 src/core/hle/service/audio/audout_u.cpp | 26 +++++++++++++++++++++++++
 src/core/hle/service/audio/audout_u.h   | 23 ++++++++++++++++++++++
 src/core/hle/service/service.cpp        |  2 ++
 5 files changed, 84 insertions(+)
 create mode 100644 src/core/hle/service/audio/audio.cpp
 create mode 100644 src/core/hle/service/audio/audio.h
 create mode 100644 src/core/hle/service/audio/audout_u.cpp
 create mode 100644 src/core/hle/service/audio/audout_u.h

diff --git a/src/core/hle/service/audio/audio.cpp b/src/core/hle/service/audio/audio.cpp
new file mode 100644
index 0000000000..0ffd72e7b4
--- /dev/null
+++ b/src/core/hle/service/audio/audio.cpp
@@ -0,0 +1,17 @@
+// Copyright 2018 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "core/hle/ipc_helpers.h"
+#include "core/hle/service/audio/audio.h"
+#include "core/hle/service/audio/audout_u.h"
+
+namespace Service {
+namespace Audio {
+
+void InstallInterfaces(SM::ServiceManager& service_manager) {
+    std::make_shared<AudOutU>()->InstallAsService(service_manager);
+}
+
+} // namespace Audio
+} // namespace Service
diff --git a/src/core/hle/service/audio/audio.h b/src/core/hle/service/audio/audio.h
new file mode 100644
index 0000000000..cbd56b2a87
--- /dev/null
+++ b/src/core/hle/service/audio/audio.h
@@ -0,0 +1,16 @@
+// Copyright 2018 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "core/hle/service/service.h"
+
+namespace Service {
+namespace Audio {
+
+/// Registers all Audio services with the specified service manager.
+void InstallInterfaces(SM::ServiceManager& service_manager);
+
+} // namespace Audio
+} // namespace Service
diff --git a/src/core/hle/service/audio/audout_u.cpp b/src/core/hle/service/audio/audout_u.cpp
new file mode 100644
index 0000000000..c028262c66
--- /dev/null
+++ b/src/core/hle/service/audio/audout_u.cpp
@@ -0,0 +1,26 @@
+// Copyright 2018 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "common/logging/log.h"
+#include "core/hle/ipc_helpers.h"
+#include "core/hle/service/audio/audout_u.h"
+
+namespace Service {
+namespace Audio {
+
+void AudOutU::ListAudioOuts(Kernel::HLERequestContext& ctx) {
+    LOG_WARNING(Service, "(STUBBED) called");
+    IPC::RequestBuilder rb{ctx, 2};
+    rb.Push(RESULT_SUCCESS);
+}
+
+AudOutU::AudOutU() : ServiceFramework("audout:u") {
+    static const FunctionInfo functions[] = {
+        {0x00000000, &AudOutU::ListAudioOuts, "ListAudioOuts"},
+    };
+    RegisterHandlers(functions);
+}
+
+} // namespace Audio
+} // namespace Service
diff --git a/src/core/hle/service/audio/audout_u.h b/src/core/hle/service/audio/audout_u.h
new file mode 100644
index 0000000000..42680af945
--- /dev/null
+++ b/src/core/hle/service/audio/audout_u.h
@@ -0,0 +1,23 @@
+// Copyright 2018 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "core/hle/kernel/hle_ipc.h"
+#include "core/hle/service/service.h"
+
+namespace Service {
+namespace Audio {
+
+class AudOutU final : public ServiceFramework<AudOutU> {
+public:
+    AudOutU();
+    ~AudOutU() = default;
+
+private:
+    void ListAudioOuts(Kernel::HLERequestContext& ctx);
+};
+
+} // namespace Audio
+} // namespace Service
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index 0ecc0eb16b..c275259805 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -17,6 +17,7 @@
 #include "core/hle/service/am/am.h"
 #include "core/hle/service/aoc/aoc_u.h"
 #include "core/hle/service/apm/apm.h"
+#include "core/hle/service/audio/audio.h"
 #include "core/hle/service/hid/hid.h"
 #include "core/hle/service/lm/lm.h"
 #include "core/hle/service/nvdrv/nvdrv.h"
@@ -164,6 +165,7 @@ void Init() {
     AM::InstallInterfaces(*SM::g_service_manager);
     AOC::InstallInterfaces(*SM::g_service_manager);
     APM::InstallInterfaces(*SM::g_service_manager);
+    Audio::InstallInterfaces(*SM::g_service_manager);
     HID::InstallInterfaces(*SM::g_service_manager);
     LM::InstallInterfaces(*SM::g_service_manager);
     NVDRV::InstallInterfaces(*SM::g_service_manager);
-- 
GitLab