diff options
author | bunnei <bunneidev@gmail.com> | 2018-01-15 20:41:06 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-01-15 20:41:06 +0100 |
commit | 5bc14ab0deb587f66677737d0a19395e8a4b124b (patch) | |
tree | 03d1f04e405ecd5522c027e144063150b923b3dc /src/core/hle/service | |
parent | settings: Fix button mappings array to have correct entries. (diff) | |
download | yuzu-5bc14ab0deb587f66677737d0a19395e8a4b124b.tar yuzu-5bc14ab0deb587f66677737d0a19395e8a4b124b.tar.gz yuzu-5bc14ab0deb587f66677737d0a19395e8a4b124b.tar.bz2 yuzu-5bc14ab0deb587f66677737d0a19395e8a4b124b.tar.lz yuzu-5bc14ab0deb587f66677737d0a19395e8a4b124b.tar.xz yuzu-5bc14ab0deb587f66677737d0a19395e8a4b124b.tar.zst yuzu-5bc14ab0deb587f66677737d0a19395e8a4b124b.zip |
Diffstat (limited to 'src/core/hle/service')
-rw-r--r-- | src/core/hle/service/am/applet_oe.cpp | 57 |
1 files changed, 55 insertions, 2 deletions
diff --git a/src/core/hle/service/am/applet_oe.cpp b/src/core/hle/service/am/applet_oe.cpp index f3d66ea96..f65d6b9f5 100644 --- a/src/core/hle/service/am/applet_oe.cpp +++ b/src/core/hle/service/am/applet_oe.cpp @@ -52,7 +52,23 @@ public: class ISelfController final : public ServiceFramework<ISelfController> { public: - ISelfController() : ServiceFramework("ISelfController") {} + ISelfController() : ServiceFramework("ISelfController") { + static const FunctionInfo functions[] = { + {13, &ISelfController::SetFocusHandlingMode, "SetFocusHandlingMode"}, + }; + RegisterHandlers(functions); + } + +private: + void SetFocusHandlingMode(Kernel::HLERequestContext& ctx) { + // Takes 3 input u8s with each field located immediately after the previous u8, these are + // bool flags. No output. + + IPC::RequestBuilder rb{ctx, 2}; + rb.Push(RESULT_SUCCESS); + + LOG_WARNING(Service, "(STUBBED) called"); + } }; class ICommonStateGetter final : public ServiceFramework<ICommonStateGetter> { @@ -61,6 +77,7 @@ public: static const FunctionInfo functions[] = { {0, &ICommonStateGetter::GetEventHandle, "GetEventHandle"}, {1, &ICommonStateGetter::ReceiveMessage, "ReceiveMessage"}, + {9, &ICommonStateGetter::GetCurrentFocusState, "GetCurrentFocusState"}, }; RegisterHandlers(functions); @@ -86,12 +103,39 @@ private: LOG_WARNING(Service, "(STUBBED) called"); } + void GetCurrentFocusState(Kernel::HLERequestContext& ctx) { + IPC::RequestBuilder rb{ctx, 3}; + rb.Push(RESULT_SUCCESS); + rb.Push<u32>(1); // 1: In focus, 2/3: Out of focus(running in "background") + + LOG_WARNING(Service, "(STUBBED) called"); + } + Kernel::SharedPtr<Kernel::Event> event; }; class IApplicationFunctions final : public ServiceFramework<IApplicationFunctions> { public: - IApplicationFunctions() : ServiceFramework("IApplicationFunctions") {} + IApplicationFunctions() : ServiceFramework("IApplicationFunctions") { + static const FunctionInfo functions[] = { + {22, &IApplicationFunctions::SetTerminateResult, "SetTerminateResult"}, + }; + RegisterHandlers(functions); + } + +private: + void SetTerminateResult(Kernel::HLERequestContext& ctx) { + // Takes an input u32 Result, no output. + // For example, in some cases official apps use this with error 0x2A2 then uses svcBreak. + + IPC::RequestParser rp{ctx}; + u32 result = rp.Pop<u32>(); + + IPC::RequestBuilder rb{ctx, 2}; + rb.Push(RESULT_SUCCESS); + + LOG_WARNING(Service, "(STUBBED) called, result=0x%08X", result); + } }; class ILibraryAppletCreator final : public ServiceFramework<ILibraryAppletCreator> { @@ -120,48 +164,56 @@ private: IPC::RequestBuilder rb{ctx, 2, 0, 0, 1}; rb.Push(RESULT_SUCCESS); rb.PushIpcInterface<IAudioController>(); + LOG_DEBUG(Service, "called"); } void GetDisplayController(Kernel::HLERequestContext& ctx) { IPC::RequestBuilder rb{ctx, 2, 0, 0, 1}; rb.Push(RESULT_SUCCESS); rb.PushIpcInterface<IDisplayController>(); + LOG_DEBUG(Service, "called"); } void GetDebugFunctions(Kernel::HLERequestContext& ctx) { IPC::RequestBuilder rb{ctx, 2, 0, 0, 1}; rb.Push(RESULT_SUCCESS); rb.PushIpcInterface<IDebugFunctions>(); + LOG_DEBUG(Service, "called"); } void GetWindowController(Kernel::HLERequestContext& ctx) { IPC::RequestBuilder rb{ctx, 2, 0, 0, 1}; rb.Push(RESULT_SUCCESS); rb.PushIpcInterface<IWindowController>(); + LOG_DEBUG(Service, "called"); } void GetSelfController(Kernel::HLERequestContext& ctx) { IPC::RequestBuilder rb{ctx, 2, 0, 0, 1}; rb.Push(RESULT_SUCCESS); rb.PushIpcInterface<ISelfController>(); + LOG_DEBUG(Service, "called"); } void GetCommonStateGetter(Kernel::HLERequestContext& ctx) { IPC::RequestBuilder rb{ctx, 2, 0, 0, 1}; rb.Push(RESULT_SUCCESS); rb.PushIpcInterface<ICommonStateGetter>(); + LOG_DEBUG(Service, "called"); } void GetLibraryAppletCreator(Kernel::HLERequestContext& ctx) { IPC::RequestBuilder rb{ctx, 2, 0, 0, 1}; rb.Push(RESULT_SUCCESS); rb.PushIpcInterface<ILibraryAppletCreator>(); + LOG_DEBUG(Service, "called"); } void GetApplicationFunctions(Kernel::HLERequestContext& ctx) { IPC::RequestBuilder rb{ctx, 2, 0, 0, 1}; rb.Push(RESULT_SUCCESS); rb.PushIpcInterface<IApplicationFunctions>(); + LOG_DEBUG(Service, "called"); } }; @@ -169,6 +221,7 @@ void AppletOE::OpenApplicationProxy(Kernel::HLERequestContext& ctx) { IPC::RequestBuilder rb{ctx, 2, 0, 0, 1}; rb.Push(RESULT_SUCCESS); rb.PushIpcInterface<IApplicationProxy>(); + LOG_DEBUG(Service, "called"); } AppletOE::AppletOE() : ServiceFramework("appletOE") { |