From 335096e19a50b38f5ccf81a3d4942a4a0e4dc546 Mon Sep 17 00:00:00 2001 From: mailwl Date: Wed, 7 Feb 2018 15:11:17 +0300 Subject: Service: stub some functions in am, audio, time, vi services --- src/core/hle/service/audio/audren_u.cpp | 51 ++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 4 deletions(-) (limited to 'src/core/hle/service/audio/audren_u.cpp') diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp index 4bafdfac3..4c3a685e9 100644 --- a/src/core/hle/service/audio/audren_u.cpp +++ b/src/core/hle/service/audio/audren_u.cpp @@ -4,6 +4,7 @@ #include "common/logging/log.h" #include "core/hle/ipc_helpers.h" +#include "core/hle/kernel/event.h" #include "core/hle/kernel/hle_ipc.h" #include "core/hle/service/audio/audren_u.h" @@ -18,27 +19,69 @@ public: {0x1, nullptr, "GetAudioRendererSampleCount"}, {0x2, nullptr, "GetAudioRendererMixBufferCount"}, {0x3, nullptr, "GetAudioRendererState"}, - {0x4, nullptr, "RequestUpdateAudioRenderer"}, + {0x4, &IAudioRenderer::RequestUpdateAudioRenderer, "RequestUpdateAudioRenderer"}, {0x5, nullptr, "StartAudioRenderer"}, {0x6, nullptr, "StopAudioRenderer"}, - {0x7, nullptr, "QuerySystemEvent"}, + {0x7, &IAudioRenderer::QuerySystemEvent, "QuerySystemEvent"}, {0x8, nullptr, "SetAudioRendererRenderingTimeLimit"}, {0x9, nullptr, "GetAudioRendererRenderingTimeLimit"}, }; RegisterHandlers(functions); + + system_event = + Kernel::Event::Create(Kernel::ResetType::OneShot, "IAudioRenderer:SystemEvent"); } ~IAudioRenderer() = default; + +private: + void RequestUpdateAudioRenderer(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2}; + + rb.Push(RESULT_SUCCESS); + + LOG_WARNING(Service_Audio, "(STUBBED) called"); + } + + void QuerySystemEvent(Kernel::HLERequestContext& ctx) { + // system_event->Signal(); + + IPC::ResponseBuilder rb{ctx, 2, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushCopyObjects(system_event); + + LOG_WARNING(Service_Audio, "(STUBBED) called"); + } + + Kernel::SharedPtr system_event; }; AudRenU::AudRenU() : ServiceFramework("audren:u") { static const FunctionInfo functions[] = { - {0x00000000, nullptr, "OpenAudioRenderer"}, - {0x00000001, nullptr, "GetAudioRendererWorkBufferSize"}, + {0x00000000, &AudRenU::OpenAudioRenderer, "OpenAudioRenderer"}, + {0x00000001, &AudRenU::GetAudioRendererWorkBufferSize, "GetAudioRendererWorkBufferSize"}, {0x00000002, nullptr, "GetAudioRenderersProcessMasterVolume"}, {0x00000003, nullptr, "SetAudioRenderersProcessMasterVolume"}, }; RegisterHandlers(functions); } +void AudRenU::OpenAudioRenderer(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface(); + + LOG_DEBUG(Service_Audio, "called"); +} + +void AudRenU::GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 4}; + + rb.Push(RESULT_SUCCESS); + rb.Push(0x1000); + + LOG_WARNING(Service_Audio, "called"); +} + } // namespace Audio } // namespace Service -- cgit v1.2.3