diff --git a/src/core/hle/service/hid/hid_server.cpp b/src/core/hle/service/hid/hid_server.cpp index 12c0a541b..d4fba217d 100644 --- a/src/core/hle/service/hid/hid_server.cpp +++ b/src/core/hle/service/hid/hid_server.cpp @@ -25,6 +25,7 @@ #include "hid_core/resources/debug_pad/debug_pad.h" #include "hid_core/resources/keyboard/keyboard.h" #include "hid_core/resources/mouse/mouse.h" +#include "hid_core/resources/mouse/debug_mouse.h" #include "hid_core/resources/npad/npad.h" #include "hid_core/resources/npad/npad_types.h" #include "hid_core/resources/npad/npad_vibration.h" @@ -49,7 +50,7 @@ IHidServer::IHidServer(Core::System& system_, std::shared_ptr r {1, C<&IHidServer::ActivateDebugPad>, "ActivateDebugPad"}, {11, C<&IHidServer::ActivateTouchScreen>, "ActivateTouchScreen"}, {21, C<&IHidServer::ActivateMouse>, "ActivateMouse"}, - {26, nullptr, "ActivateDebugMouse"}, + {26, C<&IHidServer::ActivateDebugMouse>, "ActivateDebugMouse"}, {31, C<&IHidServer::ActivateKeyboard>, "ActivateKeyboard"}, {32, C<&IHidServer::SendKeyboardLockKeyEvent>, "SendKeyboardLockKeyEvent"}, {40, C<&IHidServer::AcquireXpadIdEventHandle>, "AcquireXpadIdEventHandle"}, @@ -235,6 +236,16 @@ Result IHidServer::ActivateMouse(ClientAppletResourceUserId aruid) { R_RETURN(GetResourceManager()->GetMouse()->Activate(aruid.pid)); } +Result IHidServer::ActivateDebugMouse(ClientAppletResourceUserId aruid) { + LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", aruid.pid); + + if (!firmware_settings->IsDeviceManaged()) { + R_TRY(GetResourceManager()->GetDebugMouse()->Activate()); + } + + R_RETURN(GetResourceManager()->GetDebugMouse()->Activate(aruid.pid)); +} + Result IHidServer::ActivateKeyboard(ClientAppletResourceUserId aruid) { LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", aruid.pid); diff --git a/src/core/hle/service/hid/hid_server.h b/src/core/hle/service/hid/hid_server.h index c7685a634..28a70683c 100644 --- a/src/core/hle/service/hid/hid_server.h +++ b/src/core/hle/service/hid/hid_server.h @@ -38,6 +38,7 @@ private: Result ActivateDebugPad(ClientAppletResourceUserId aruid); Result ActivateTouchScreen(ClientAppletResourceUserId aruid); Result ActivateMouse(ClientAppletResourceUserId aruid); + Result ActivateDebugMouse(ClientAppletResourceUserId aruid); Result ActivateKeyboard(ClientAppletResourceUserId aruid); Result SendKeyboardLockKeyEvent(u32 flags); Result AcquireXpadIdEventHandle(OutCopyHandle out_event,