From 7ce68580862b36d17cb9367506b02b9457f93065 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sat, 28 Jul 2018 21:08:08 -0400 Subject: service/btm: Add basic implementation of GetCoreImpl() Based off information on SwIPC and Switch Brew. --- src/core/hle/service/btm/btm.cpp | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/hle/service/btm/btm.cpp b/src/core/hle/service/btm/btm.cpp index f6c0fb8d9..b949bfabd 100644 --- a/src/core/hle/service/btm/btm.cpp +++ b/src/core/hle/service/btm/btm.cpp @@ -4,6 +4,9 @@ #include +#include "common/logging/log.h" +#include "core/hle/ipc_helpers.h" +#include "core/hle/kernel/hle_ipc.h" #include "core/hle/service/btm/btm.h" #include "core/hle/service/service.h" #include "core/hle/service/sm/sm.h" @@ -65,17 +68,48 @@ public: } }; +class IBtmSystemCore final : public ServiceFramework { +public: + explicit IBtmSystemCore() : ServiceFramework{"IBtmSystemCore"} { + // clang-format off + static const FunctionInfo functions[] = { + {0, nullptr, "StartGamepadPairingImpl"}, + {1, nullptr, "CancelGamepadPairingImpl"}, + {2, nullptr, "ClearGamepadPairingDatabaseImpl"}, + {3, nullptr, "GetPairedGamepadCountImpl"}, + {4, nullptr, "EnableRadioImpl"}, + {5, nullptr, "DisableRadioImpl"}, + {6, nullptr, "GetRadioOnOffImpl"}, + {7, nullptr, "AcquireRadioEventImpl"}, + {8, nullptr, "AcquireGamepadPairingEventImpl"}, + {9, nullptr, "IsGamepadPairingStartedImpl"}, + }; + // clang-format on + + RegisterHandlers(functions); + } +}; + class BTM_SYS final : public ServiceFramework { public: explicit BTM_SYS() : ServiceFramework{"btm:sys"} { // clang-format off static const FunctionInfo functions[] = { - {0, nullptr, "GetCoreImpl"}, + {0, &BTM_SYS::GetCoreImpl, "GetCoreImpl"}, }; // clang-format on RegisterHandlers(functions); } + +private: + void GetCoreImpl(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface(); + + LOG_DEBUG(Service_BTM, "called"); + } }; void InstallInterfaces(SM::ServiceManager& sm) { -- cgit v1.2.3