From 62083fcafd11348e01cf0d99e2693cb608cca71b Mon Sep 17 00:00:00 2001 From: Liam Date: Tue, 20 Feb 2024 00:46:35 -0500 Subject: audio: split IAudioDevice, IAudioRenderer, move IAudioRendererManager --- .../hle/service/audio/audio_renderer_manager.h | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/core/hle/service/audio/audio_renderer_manager.h (limited to 'src/core/hle/service/audio/audio_renderer_manager.h') diff --git a/src/core/hle/service/audio/audio_renderer_manager.h b/src/core/hle/service/audio/audio_renderer_manager.h new file mode 100644 index 000000000..3623f91c6 --- /dev/null +++ b/src/core/hle/service/audio/audio_renderer_manager.h @@ -0,0 +1,34 @@ +// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "audio_core/audio_render_manager.h" +#include "core/hle/service/kernel_helpers.h" +#include "core/hle/service/service.h" + +namespace Core { +class System; +} + +namespace Service::Audio { +class IAudioRenderer; + +class IAudioRendererManager final : public ServiceFramework { +public: + explicit IAudioRendererManager(Core::System& system_); + ~IAudioRendererManager() override; + +private: + void OpenAudioRenderer(HLERequestContext& ctx); + void GetWorkBufferSize(HLERequestContext& ctx); + void GetAudioDeviceService(HLERequestContext& ctx); + void OpenAudioRendererForManualExecution(HLERequestContext& ctx); + void GetAudioDeviceServiceWithRevisionInfo(HLERequestContext& ctx); + + KernelHelpers::ServiceContext service_context; + std::unique_ptr impl; + u32 num_audio_devices{0}; +}; + +} // namespace Service::Audio -- cgit v1.2.3 From 6012c9fe3af1c649e5ac6392dc4b74bd3cfd0c4f Mon Sep 17 00:00:00 2001 From: Liam Date: Tue, 20 Feb 2024 20:02:36 -0500 Subject: audio: rewrite IAudioRendererManager --- .../hle/service/audio/audio_renderer_manager.h | 25 ++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src/core/hle/service/audio/audio_renderer_manager.h') diff --git a/src/core/hle/service/audio/audio_renderer_manager.h b/src/core/hle/service/audio/audio_renderer_manager.h index 3623f91c6..69eee664c 100644 --- a/src/core/hle/service/audio/audio_renderer_manager.h +++ b/src/core/hle/service/audio/audio_renderer_manager.h @@ -4,14 +4,12 @@ #pragma once #include "audio_core/audio_render_manager.h" -#include "core/hle/service/kernel_helpers.h" +#include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" -namespace Core { -class System; -} - namespace Service::Audio { + +class IAudioDevice; class IAudioRenderer; class IAudioRendererManager final : public ServiceFramework { @@ -20,13 +18,18 @@ public: ~IAudioRendererManager() override; private: - void OpenAudioRenderer(HLERequestContext& ctx); - void GetWorkBufferSize(HLERequestContext& ctx); - void GetAudioDeviceService(HLERequestContext& ctx); - void OpenAudioRendererForManualExecution(HLERequestContext& ctx); - void GetAudioDeviceServiceWithRevisionInfo(HLERequestContext& ctx); + Result OpenAudioRenderer(Out> out_audio_renderer, + AudioCore::AudioRendererParameterInternal parameter, + InCopyHandle tmem_handle, u64 tmem_size, + InCopyHandle process_handle, + ClientAppletResourceUserId aruid); + Result GetWorkBufferSize(Out out_size, + AudioCore::AudioRendererParameterInternal parameter); + Result GetAudioDeviceService(Out> out_audio_device, + ClientAppletResourceUserId aruid); + Result GetAudioDeviceServiceWithRevisionInfo(Out> out_audio_device, + u32 revision, ClientAppletResourceUserId aruid); - KernelHelpers::ServiceContext service_context; std::unique_ptr impl; u32 num_audio_devices{0}; }; -- cgit v1.2.3