diff options
Diffstat (limited to 'src/core/hle/service/audio/audio.cpp')
| -rw-r--r-- | src/core/hle/service/audio/audio.cpp | 64 |
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)); } |
