From e0920ef4ba5dc9ece5a5a56b735a8573a9d8a390 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Wed, 10 Apr 2019 14:40:18 -0400 Subject: ncm: Implement LR OpenRegisteredLocationResolver (1) Returns an object of type IRegisteredLocationResolver for the StorageId. --- src/core/hle/service/ncm/ncm.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/core') diff --git a/src/core/hle/service/ncm/ncm.cpp b/src/core/hle/service/ncm/ncm.cpp index 7f775900a..c59bcc2a7 100644 --- a/src/core/hle/service/ncm/ncm.cpp +++ b/src/core/hle/service/ncm/ncm.cpp @@ -45,6 +45,25 @@ private: FileSys::StorageId storage; }; +class IRegisteredLocationResolver final : public ServiceFramework { +public: + explicit IRegisteredLocationResolver() : ServiceFramework{"IRegisteredLocationResolver"} { + static const FunctionInfo functions[] = { + {0, nullptr, "ResolveProgramPath"}, + {1, nullptr, "RegisterProgramPath"}, + {2, nullptr, "UnregisterProgramPath"}, + {3, nullptr, "RedirectProgramPath"}, + {4, nullptr, "ResolveHtmlDocumentPath"}, + {5, nullptr, "RegisterHtmlDocumentPath"}, + {6, nullptr, "UnregisterHtmlDocumentPath"}, + {7, nullptr, "RedirectHtmlDocumentPath"}, + {8, nullptr, ""}, + }; + + RegisterHandlers(functions); + } +}; + public: explicit LocationResolver() : ServiceFramework{"lr"} { class LR final : public ServiceFramework { @@ -74,6 +93,14 @@ private: rb.PushIpcInterface(std::make_shared(id)); } + void OpenRegisteredLocationResolver(Kernel::HLERequestContext& ctx) { + LOG_DEBUG(Service_NCM, "called"); + + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface(std::make_shared()); + } + }; class NCM final : public ServiceFramework { -- cgit v1.2.3