aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/audio/audio.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/audio/audio.cpp')
-rw-r--r--src/core/hle/service/audio/audio.cpp64
1 files changed, 3 insertions, 61 deletions
diff --git a/src/core/hle/service/audio/audio.cpp b/src/core/hle/service/audio/audio.cpp
index 63d578462f..fde766a275 100644
--- a/src/core/hle/service/audio/audio.cpp
+++ b/src/core/hle/service/audio/audio.cpp
@@ -5,8 +5,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "core/core.h"
-#include "core/hle/kernel/svc_results.h"
-#include "core/hle/service/ipc_helpers.h"
#include "core/hle/service/audio/audio.h"
#include "core/hle/service/audio/audio_controller.h"
#include "core/hle/service/audio/audio_in_manager.h"
@@ -20,57 +18,6 @@
namespace Service::Audio {
-class INativeAudioManager final : public ServiceFramework<INativeAudioManager> {
-public:
- INativeAudioManager(Core::System& system_, std::shared_ptr<IAudioInManager> input,
- std::shared_ptr<IAudioOutManager> output,
- std::shared_ptr<IAudioRendererManager> renderer)
- : ServiceFramework{system_, "aud:u"}, m_input{std::move(input)},
- m_output{std::move(output)}, m_renderer{std::move(renderer)} {
- static const FunctionInfo functions[] = {
- {0, &INativeAudioManager::GetAudioInManager, "GetAudioInManager"},
- {1, &INativeAudioManager::GetAudioOutManager, "GetAudioOutManager"},
- {2, &INativeAudioManager::GetAudioRendererManager, "GetAudioRendererManager"},
- };
- RegisterHandlers(functions);
- }
-
- Result HandleSyncRequest(Kernel::KServerSession& session, HLERequestContext& ctx) override {
- if (!ctx.IsTipc()) {
- return ServiceFrameworkBase::HandleSyncRequest(session, ctx);
- }
- const auto guard = LockService();
- LOG_WARNING(Service_Audio, "Native audio unsupported command={}, words={:08x}", ctx.GetCommand(),
- fmt::join(std::span<const u32>(ctx.CommandBuffer() + 2,
- std::min<u32>(ctx.CommandBuffer()[1], 32)), ","));
- InvokeRequestTipc(ctx);
- IPC::ResponseBuilder rb{ctx, 2};
- rb.Push(Kernel::ResultNotImplemented.raw);
- return system.IsPoweredOn() ? ctx.WriteToOutgoingCommandBuffer() : ResultSuccess;
- }
-
-private:
- void GetAudioInManager(HLERequestContext& ctx) {
- IPC::ResponseBuilder rb{ctx, 2, 0, 1};
- rb.Push(ResultSuccess);
- rb.PushIpcInterface(ctx, m_input);
- }
- void GetAudioOutManager(HLERequestContext& ctx) {
- IPC::ResponseBuilder rb{ctx, 2, 0, 1};
- rb.Push(ResultSuccess);
- rb.PushIpcInterface(ctx, m_output);
- }
- void GetAudioRendererManager(HLERequestContext& ctx) {
- LOG_DEBUG(Service_Audio, "Native user client opens existing audio renderer manager");
- IPC::ResponseBuilder rb{ctx, 2, 0, 1};
- rb.Push(ResultSuccess);
- rb.PushIpcInterface(ctx, m_renderer);
- }
- std::shared_ptr<IAudioInManager> m_input;
- std::shared_ptr<IAudioOutManager> m_output;
- std::shared_ptr<IAudioRendererManager> m_renderer;
-};
-
class IAudioOutManagerForApplet final : public ServiceFramework<IAudioOutManagerForApplet> {
public:
explicit IAudioOutManagerForApplet(Core::System& system_)
@@ -246,23 +193,18 @@ void LoopProcess(Core::System& system) {
server_manager->RegisterNamedService("audrec:d", std::make_shared<IFinalOutputRecorderManagerForDebugger>(system), 30);
server_manager->RegisterNamedService("audren:d", std::make_shared<IAudioRendererManagerForDebugger>(system), 30);
- auto audio_input = std::make_shared<IAudioInManager>(system);
- server_manager->RegisterNamedService("audin:u", audio_input, 30);
+ server_manager->RegisterNamedService("audin:u", std::make_shared<IAudioInManager>(system), 30);
server_manager->RegisterNamedService("audin:a", std::make_shared<IAudioInManagerForApplet>(system), 30);
- auto audio_output = std::make_shared<IAudioOutManager>(system);
- server_manager->RegisterNamedService("audout:u", audio_output, 30);
+ server_manager->RegisterNamedService("audout:u", std::make_shared<IAudioOutManager>(system), 30);
server_manager->RegisterNamedService("audout:a", std::make_shared<IAudioOutManagerForApplet>(system), 30);
server_manager->RegisterNamedService("auddev", std::make_shared<IAudioSnoopManager>(system), 30);
// Depends on audout:u and audin:u on ctor!
server_manager->RegisterNamedService("audctl", std::make_shared<IAudioController>(system), 30);
server_manager->RegisterNamedService("audrec:a", std::make_shared<IFinalOutputRecorderManagerForApplet>(system), 30);
server_manager->RegisterNamedService("audrec:u", std::make_shared<IFinalOutputRecorderManager>(system), 30);
- auto audio_renderer = std::make_shared<IAudioRendererManager>(system);
- server_manager->RegisterNamedService("audren:u", audio_renderer, 30);
+ server_manager->RegisterNamedService("audren:u", std::make_shared<IAudioRendererManager>(system), 30);
server_manager->RegisterNamedService("audren:a", std::make_shared<IAudioRendererManagerForApplet>(system), 30);
server_manager->RegisterNamedService("hwopus", std::make_shared<IHardwareOpusDecoderManager>(system), 25);
- server_manager->RegisterNamedService("aud:u",
- std::make_shared<INativeAudioManager>(system, audio_input, audio_output, audio_renderer), 30);
ServerManager::RunServer(std::move(server_manager));
}