summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/CMakeLists.txt16
-rw-r--r--src/core/hle/kernel/kernel.cpp2
-rw-r--r--src/core/hle/kernel/mutex.cpp1
-rw-r--r--src/core/hle/kernel/object_address_table.cpp36
-rw-r--r--src/core/hle/kernel/object_address_table.h62
-rw-r--r--src/core/hle/kernel/svc.cpp1
-rw-r--r--src/core/hle/service/audio/audctl.cpp45
-rw-r--r--src/core/hle/service/audio/audctl.h16
-rw-r--r--src/core/hle/service/audio/auddbg.cpp20
-rw-r--r--src/core/hle/service/audio/auddbg.h16
-rw-r--r--src/core/hle/service/audio/audin_a.cpp24
-rw-r--r--src/core/hle/service/audio/audin_a.h16
-rw-r--r--src/core/hle/service/audio/audio.cpp16
-rw-r--r--src/core/hle/service/audio/audout_a.cpp26
-rw-r--r--src/core/hle/service/audio/audout_a.h16
-rw-r--r--src/core/hle/service/audio/audrec_a.cpp22
-rw-r--r--src/core/hle/service/audio/audrec_a.h16
-rw-r--r--src/core/hle/service/audio/audren_a.cpp28
-rw-r--r--src/core/hle/service/audio/audren_a.h16
19 files changed, 289 insertions, 106 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 3e13fc25b..ccb0695e4 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -67,8 +67,6 @@ add_library(core STATIC
67 hle/kernel/memory.h 67 hle/kernel/memory.h
68 hle/kernel/mutex.cpp 68 hle/kernel/mutex.cpp
69 hle/kernel/mutex.h 69 hle/kernel/mutex.h
70 hle/kernel/object_address_table.cpp
71 hle/kernel/object_address_table.h
72 hle/kernel/process.cpp 70 hle/kernel/process.cpp
73 hle/kernel/process.h 71 hle/kernel/process.h
74 hle/kernel/resource_limit.cpp 72 hle/kernel/resource_limit.cpp
@@ -126,17 +124,27 @@ add_library(core STATIC
126 hle/service/apm/apm.h 124 hle/service/apm/apm.h
127 hle/service/apm/interface.cpp 125 hle/service/apm/interface.cpp
128 hle/service/apm/interface.h 126 hle/service/apm/interface.h
127 hle/service/audio/audctl.cpp
128 hle/service/audio/audctl.h
129 hle/service/audio/auddbg.cpp
130 hle/service/audio/auddbg.h
131 hle/service/audio/audin_a.cpp
132 hle/service/audio/audin_a.h
129 hle/service/audio/audin_u.cpp 133 hle/service/audio/audin_u.cpp
130 hle/service/audio/audin_u.h 134 hle/service/audio/audin_u.h
131 hle/service/audio/audio.cpp 135 hle/service/audio/audio.cpp
132 hle/service/audio/audio.h 136 hle/service/audio/audio.h
137 hle/service/audio/audout_a.cpp
138 hle/service/audio/audout_a.h
133 hle/service/audio/audout_u.cpp 139 hle/service/audio/audout_u.cpp
134 hle/service/audio/audout_u.h 140 hle/service/audio/audout_u.h
141 hle/service/audio/audrec_a.cpp
142 hle/service/audio/audrec_a.h
135 hle/service/audio/audrec_u.cpp 143 hle/service/audio/audrec_u.cpp
136 hle/service/audio/audrec_u.h 144 hle/service/audio/audrec_u.h
145 hle/service/audio/audren_a.cpp
146 hle/service/audio/audren_a.h
137 hle/service/audio/audren_u.cpp 147 hle/service/audio/audren_u.cpp
138 hle/service/audio/audren_u.cpp
139 hle/service/audio/audren_u.h
140 hle/service/audio/audren_u.h 148 hle/service/audio/audren_u.h
141 hle/service/audio/codecctl.cpp 149 hle/service/audio/codecctl.cpp
142 hle/service/audio/codecctl.h 150 hle/service/audio/codecctl.h
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index 1beb98566..3eb4f465c 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -5,7 +5,6 @@
5#include "core/hle/kernel/handle_table.h" 5#include "core/hle/kernel/handle_table.h"
6#include "core/hle/kernel/kernel.h" 6#include "core/hle/kernel/kernel.h"
7#include "core/hle/kernel/memory.h" 7#include "core/hle/kernel/memory.h"
8#include "core/hle/kernel/object_address_table.h"
9#include "core/hle/kernel/process.h" 8#include "core/hle/kernel/process.h"
10#include "core/hle/kernel/resource_limit.h" 9#include "core/hle/kernel/resource_limit.h"
11#include "core/hle/kernel/thread.h" 10#include "core/hle/kernel/thread.h"
@@ -33,7 +32,6 @@ void Init(u32 system_mode) {
33void Shutdown() { 32void Shutdown() {
34 // Free all kernel objects 33 // Free all kernel objects
35 g_handle_table.Clear(); 34 g_handle_table.Clear();
36 g_object_address_table.Clear();
37 35
38 Kernel::ThreadingShutdown(); 36 Kernel::ThreadingShutdown();
39 37
diff --git a/src/core/hle/kernel/mutex.cpp b/src/core/hle/kernel/mutex.cpp
index d6b12f9aa..12b974c4b 100644
--- a/src/core/hle/kernel/mutex.cpp
+++ b/src/core/hle/kernel/mutex.cpp
@@ -14,7 +14,6 @@
14#include "core/hle/kernel/handle_table.h" 14#include "core/hle/kernel/handle_table.h"
15#include "core/hle/kernel/kernel.h" 15#include "core/hle/kernel/kernel.h"
16#include "core/hle/kernel/mutex.h" 16#include "core/hle/kernel/mutex.h"
17#include "core/hle/kernel/object_address_table.h"
18#include "core/hle/kernel/thread.h" 17#include "core/hle/kernel/thread.h"
19#include "core/hle/result.h" 18#include "core/hle/result.h"
20 19
diff --git a/src/core/hle/kernel/object_address_table.cpp b/src/core/hle/kernel/object_address_table.cpp
deleted file mode 100644
index ca8a833a1..000000000
--- a/src/core/hle/kernel/object_address_table.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include <utility>
6
7#include "common/assert.h"
8#include "core/hle/kernel/object_address_table.h"
9
10namespace Kernel {
11
12ObjectAddressTable g_object_address_table;
13
14void ObjectAddressTable::Insert(VAddr addr, SharedPtr<Object> obj) {
15 ASSERT_MSG(objects.find(addr) == objects.end(), "Object already exists with addr=0x{:X}", addr);
16 objects[addr] = std::move(obj);
17}
18
19void ObjectAddressTable::Close(VAddr addr) {
20 ASSERT_MSG(objects.find(addr) != objects.end(), "Object does not exist with addr=0x{:X}", addr);
21 objects.erase(addr);
22}
23
24SharedPtr<Object> ObjectAddressTable::GetGeneric(VAddr addr) const {
25 auto iter = objects.find(addr);
26 if (iter != objects.end()) {
27 return iter->second;
28 }
29 return {};
30}
31
32void ObjectAddressTable::Clear() {
33 objects.clear();
34}
35
36} // namespace Kernel
diff --git a/src/core/hle/kernel/object_address_table.h b/src/core/hle/kernel/object_address_table.h
deleted file mode 100644
index a09004b32..000000000
--- a/src/core/hle/kernel/object_address_table.h
+++ /dev/null
@@ -1,62 +0,0 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include <map>
8#include "common/common_types.h"
9#include "core/hle/kernel/kernel.h"
10
11namespace Kernel {
12
13/**
14 * This class is used to keep a table of Kernel objects and their respective addresses in emulated
15 * memory. For certain Switch SVCs, Kernel objects are referenced by an address to an object the
16 * guest application manages, so we use this table to look these kernel objects up. This is similiar
17 * to the HandleTable class.
18 */
19class ObjectAddressTable final : NonCopyable {
20public:
21 ObjectAddressTable() = default;
22
23 /**
24 * Inserts an object and address pair into the table.
25 */
26 void Insert(VAddr addr, SharedPtr<Object> obj);
27
28 /**
29 * Closes an object by its address, removing it from the table and decreasing the object's
30 * ref-count.
31 * @return `RESULT_SUCCESS` or one of the following errors:
32 * - `ERR_INVALID_HANDLE`: an invalid handle was passed in.
33 */
34 void Close(VAddr addr);
35
36 /**
37 * Looks up an object by its address.
38 * @return Pointer to the looked-up object, or `nullptr` if the handle is not valid.
39 */
40 SharedPtr<Object> GetGeneric(VAddr addr) const;
41
42 /**
43 * Looks up an object by its address while verifying its type.
44 * @return Pointer to the looked-up object, or `nullptr` if the handle is not valid or its
45 * type differs from the requested one.
46 */
47 template <class T>
48 SharedPtr<T> Get(VAddr addr) const {
49 return DynamicObjectCast<T>(GetGeneric(addr));
50 }
51
52 /// Closes all addresses held in this table.
53 void Clear();
54
55private:
56 /// Stores the Object referenced by the address
57 std::map<VAddr, SharedPtr<Object>> objects;
58};
59
60extern ObjectAddressTable g_object_address_table;
61
62} // namespace Kernel
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 4c9d44c9d..d1cbbc1f2 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -20,7 +20,6 @@
20#include "core/hle/kernel/event.h" 20#include "core/hle/kernel/event.h"
21#include "core/hle/kernel/handle_table.h" 21#include "core/hle/kernel/handle_table.h"
22#include "core/hle/kernel/mutex.h" 22#include "core/hle/kernel/mutex.h"
23#include "core/hle/kernel/object_address_table.h"
24#include "core/hle/kernel/process.h" 23#include "core/hle/kernel/process.h"
25#include "core/hle/kernel/resource_limit.h" 24#include "core/hle/kernel/resource_limit.h"
26#include "core/hle/kernel/shared_memory.h" 25#include "core/hle/kernel/shared_memory.h"
diff --git a/src/core/hle/service/audio/audctl.cpp b/src/core/hle/service/audio/audctl.cpp
new file mode 100644
index 000000000..37c3fdcac
--- /dev/null
+++ b/src/core/hle/service/audio/audctl.cpp
@@ -0,0 +1,45 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/service/audio/audctl.h"
6
7namespace Service::Audio {
8
9AudCtl::AudCtl() : ServiceFramework{"audctl"} {
10 // clang-format off
11 static const FunctionInfo functions[] = {
12 {0, nullptr, "GetTargetVolume"},
13 {1, nullptr, "SetTargetVolume"},
14 {2, nullptr, "GetTargetVolumeMin"},
15 {3, nullptr, "GetTargetVolumeMax"},
16 {4, nullptr, "IsTargetMute"},
17 {5, nullptr, "SetTargetMute"},
18 {6, nullptr, "IsTargetConnected"},
19 {7, nullptr, "SetDefaultTarget"},
20 {8, nullptr, "GetDefaultTarget"},
21 {9, nullptr, "GetAudioOutputMode"},
22 {10, nullptr, "SetAudioOutputMode"},
23 {11, nullptr, "SetForceMutePolicy"},
24 {12, nullptr, "GetForceMutePolicy"},
25 {13, nullptr, "GetOutputModeSetting"},
26 {14, nullptr, "SetOutputModeSetting"},
27 {15, nullptr, "SetOutputTarget"},
28 {16, nullptr, "SetInputTargetForceEnabled"},
29 {17, nullptr, "SetHeadphoneOutputLevelMode"},
30 {18, nullptr, "GetHeadphoneOutputLevelMode"},
31 {19, nullptr, "AcquireAudioVolumeUpdateEventForPlayReport"},
32 {20, nullptr, "AcquireAudioOutputDeviceUpdateEventForPlayReport"},
33 {21, nullptr, "GetAudioOutputTargetForPlayReport"},
34 {22, nullptr, "NotifyHeadphoneVolumeWarningDisplayedEvent"},
35 {23, nullptr, "SetSystemOutputMasterVolume"},
36 {24, nullptr, "GetSystemOutputMasterVolume"},
37 {25, nullptr, "GetAudioVolumeDataForPlayReport"},
38 {26, nullptr, "UpdateHeadphoneSettings"},
39 };
40 // clang-format on
41
42 RegisterHandlers(functions);
43}
44
45} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/audctl.h b/src/core/hle/service/audio/audctl.h
new file mode 100644
index 000000000..ed837bdf2
--- /dev/null
+++ b/src/core/hle/service/audio/audctl.h
@@ -0,0 +1,16 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/service.h"
8
9namespace Service::Audio {
10
11class AudCtl final : public ServiceFramework<AudCtl> {
12public:
13 explicit AudCtl();
14};
15
16} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/auddbg.cpp b/src/core/hle/service/audio/auddbg.cpp
new file mode 100644
index 000000000..b08c21a20
--- /dev/null
+++ b/src/core/hle/service/audio/auddbg.cpp
@@ -0,0 +1,20 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/service/audio/auddbg.h"
6
7namespace Service::Audio {
8
9AudDbg::AudDbg(const char* name) : ServiceFramework{name} {
10 // clang-format off
11 static const FunctionInfo functions[] = {
12 {0, nullptr, "RequestSuspendForDebug"},
13 {1, nullptr, "RequestResumeForDebug"},
14 };
15 // clang-format on
16
17 RegisterHandlers(functions);
18}
19
20} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/auddbg.h b/src/core/hle/service/audio/auddbg.h
new file mode 100644
index 000000000..a2f540b75
--- /dev/null
+++ b/src/core/hle/service/audio/auddbg.h
@@ -0,0 +1,16 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/service.h"
8
9namespace Service::Audio {
10
11class AudDbg final : public ServiceFramework<AudDbg> {
12public:
13 explicit AudDbg(const char* name);
14};
15
16} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/audin_a.cpp b/src/core/hle/service/audio/audin_a.cpp
new file mode 100644
index 000000000..e62a27945
--- /dev/null
+++ b/src/core/hle/service/audio/audin_a.cpp
@@ -0,0 +1,24 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/audio/audin_a.h"
8
9namespace Service::Audio {
10
11AudInA::AudInA() : ServiceFramework{"audin:a"} {
12 // clang-format off
13 static const FunctionInfo functions[] = {
14 {0, nullptr, "RequestSuspendAudioIns"},
15 {1, nullptr, "RequestResumeAudioIns"},
16 {2, nullptr, "GetAudioInsProcessMasterVolume"},
17 {3, nullptr, "SetAudioInsProcessMasterVolume"},
18 };
19 // clang-format on
20
21 RegisterHandlers(functions);
22}
23
24} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/audin_a.h b/src/core/hle/service/audio/audin_a.h
new file mode 100644
index 000000000..e4c75510f
--- /dev/null
+++ b/src/core/hle/service/audio/audin_a.h
@@ -0,0 +1,16 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/service.h"
8
9namespace Service::Audio {
10
11class AudInA final : public ServiceFramework<AudInA> {
12public:
13 explicit AudInA();
14};
15
16} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/audio.cpp b/src/core/hle/service/audio/audio.cpp
index d231e91e1..6b5e15633 100644
--- a/src/core/hle/service/audio/audio.cpp
+++ b/src/core/hle/service/audio/audio.cpp
@@ -2,10 +2,16 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include "core/hle/service/audio/audctl.h"
6#include "core/hle/service/audio/auddbg.h"
7#include "core/hle/service/audio/audin_a.h"
5#include "core/hle/service/audio/audin_u.h" 8#include "core/hle/service/audio/audin_u.h"
6#include "core/hle/service/audio/audio.h" 9#include "core/hle/service/audio/audio.h"
10#include "core/hle/service/audio/audout_a.h"
7#include "core/hle/service/audio/audout_u.h" 11#include "core/hle/service/audio/audout_u.h"
12#include "core/hle/service/audio/audrec_a.h"
8#include "core/hle/service/audio/audrec_u.h" 13#include "core/hle/service/audio/audrec_u.h"
14#include "core/hle/service/audio/audren_a.h"
9#include "core/hle/service/audio/audren_u.h" 15#include "core/hle/service/audio/audren_u.h"
10#include "core/hle/service/audio/codecctl.h" 16#include "core/hle/service/audio/codecctl.h"
11#include "core/hle/service/audio/hwopus.h" 17#include "core/hle/service/audio/hwopus.h"
@@ -13,12 +19,22 @@
13namespace Service::Audio { 19namespace Service::Audio {
14 20
15void InstallInterfaces(SM::ServiceManager& service_manager) { 21void InstallInterfaces(SM::ServiceManager& service_manager) {
22 std::make_shared<AudCtl>()->InstallAsService(service_manager);
23 std::make_shared<AudOutA>()->InstallAsService(service_manager);
16 std::make_shared<AudOutU>()->InstallAsService(service_manager); 24 std::make_shared<AudOutU>()->InstallAsService(service_manager);
25 std::make_shared<AudInA>()->InstallAsService(service_manager);
17 std::make_shared<AudInU>()->InstallAsService(service_manager); 26 std::make_shared<AudInU>()->InstallAsService(service_manager);
27 std::make_shared<AudRecA>()->InstallAsService(service_manager);
18 std::make_shared<AudRecU>()->InstallAsService(service_manager); 28 std::make_shared<AudRecU>()->InstallAsService(service_manager);
29 std::make_shared<AudRenA>()->InstallAsService(service_manager);
19 std::make_shared<AudRenU>()->InstallAsService(service_manager); 30 std::make_shared<AudRenU>()->InstallAsService(service_manager);
20 std::make_shared<CodecCtl>()->InstallAsService(service_manager); 31 std::make_shared<CodecCtl>()->InstallAsService(service_manager);
21 std::make_shared<HwOpus>()->InstallAsService(service_manager); 32 std::make_shared<HwOpus>()->InstallAsService(service_manager);
33
34 std::make_shared<AudDbg>("audin:d")->InstallAsService(service_manager);
35 std::make_shared<AudDbg>("audout:d")->InstallAsService(service_manager);
36 std::make_shared<AudDbg>("audrec:d")->InstallAsService(service_manager);
37 std::make_shared<AudDbg>("audren:d")->InstallAsService(service_manager);
22} 38}
23 39
24} // namespace Service::Audio 40} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/audout_a.cpp b/src/core/hle/service/audio/audout_a.cpp
new file mode 100644
index 000000000..57b934dd6
--- /dev/null
+++ b/src/core/hle/service/audio/audout_a.cpp
@@ -0,0 +1,26 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/audio/audout_a.h"
8
9namespace Service::Audio {
10
11AudOutA::AudOutA() : ServiceFramework{"audout:a"} {
12 // clang-format off
13 static const FunctionInfo functions[] = {
14 {0, nullptr, "RequestSuspendAudioOuts"},
15 {1, nullptr, "RequestResumeAudioOuts"},
16 {2, nullptr, "GetAudioOutsProcessMasterVolume"},
17 {3, nullptr, "SetAudioOutsProcessMasterVolume"},
18 {4, nullptr, "GetAudioOutsProcessRecordVolume"},
19 {5, nullptr, "SetAudioOutsProcessRecordVolume"},
20 };
21 // clang-format on
22
23 RegisterHandlers(functions);
24}
25
26} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/audout_a.h b/src/core/hle/service/audio/audout_a.h
new file mode 100644
index 000000000..91a069152
--- /dev/null
+++ b/src/core/hle/service/audio/audout_a.h
@@ -0,0 +1,16 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/service.h"
8
9namespace Service::Audio {
10
11class AudOutA final : public ServiceFramework<AudOutA> {
12public:
13 explicit AudOutA();
14};
15
16} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/audrec_a.cpp b/src/core/hle/service/audio/audrec_a.cpp
new file mode 100644
index 000000000..9c32f9b98
--- /dev/null
+++ b/src/core/hle/service/audio/audrec_a.cpp
@@ -0,0 +1,22 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/audio/audrec_a.h"
8
9namespace Service::Audio {
10
11AudRecA::AudRecA() : ServiceFramework{"audrec:a"} {
12 // clang-format off
13 static const FunctionInfo functions[] = {
14 {0, nullptr, "RequestSuspendFinalOutputRecorders"},
15 {1, nullptr, "RequestResumeFinalOutputRecorders"},
16 };
17 // clang-format on
18
19 RegisterHandlers(functions);
20}
21
22} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/audrec_a.h b/src/core/hle/service/audio/audrec_a.h
new file mode 100644
index 000000000..9685047f2
--- /dev/null
+++ b/src/core/hle/service/audio/audrec_a.h
@@ -0,0 +1,16 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/service.h"
8
9namespace Service::Audio {
10
11class AudRecA final : public ServiceFramework<AudRecA> {
12public:
13 explicit AudRecA();
14};
15
16} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/audren_a.cpp b/src/core/hle/service/audio/audren_a.cpp
new file mode 100644
index 000000000..bc9930d79
--- /dev/null
+++ b/src/core/hle/service/audio/audren_a.cpp
@@ -0,0 +1,28 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/audio/audren_a.h"
8
9namespace Service::Audio {
10
11AudRenA::AudRenA() : ServiceFramework{"audren:a"} {
12 // clang-format off
13 static const FunctionInfo functions[] = {
14 {0, nullptr, "RequestSuspendAudioRenderers"},
15 {1, nullptr, "RequestResumeAudioRenderers"},
16 {2, nullptr, "GetAudioRenderersProcessMasterVolume"},
17 {3, nullptr, "SetAudioRenderersProcessMasterVolume"},
18 {4, nullptr, "RegisterAppletResourceUserId"},
19 {5, nullptr, "UnregisterAppletResourceUserId"},
20 {6, nullptr, "GetAudioRenderersProcessRecordVolume"},
21 {7, nullptr, "SetAudioRenderersProcessRecordVolume"},
22 };
23 // clang-format on
24
25 RegisterHandlers(functions);
26}
27
28} // namespace Service::Audio
diff --git a/src/core/hle/service/audio/audren_a.h b/src/core/hle/service/audio/audren_a.h
new file mode 100644
index 000000000..5ecf2e184
--- /dev/null
+++ b/src/core/hle/service/audio/audren_a.h
@@ -0,0 +1,16 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/service.h"
8
9namespace Service::Audio {
10
11class AudRenA final : public ServiceFramework<AudRenA> {
12public:
13 explicit AudRenA();
14};
15
16} // namespace Service::Audio