diff options
Diffstat (limited to 'src/core/hle/service')
| -rw-r--r-- | src/core/hle/service/ncm/ncm.cpp | 27 | 
1 files changed, 27 insertions, 0 deletions
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<IRegisteredLocationResolver> { +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<LR> { @@ -74,6 +93,14 @@ private:          rb.PushIpcInterface(std::make_shared<ILocationResolver>(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<IRegisteredLocationResolver>()); +    } +  };  class NCM final : public ServiceFramework<NCM> {  | 
