diff options
| author | liamwhite <liamwhite@users.noreply.github.com> | 2023-11-29 12:33:50 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-29 12:33:50 -0500 |
| commit | 498159d719a4a22b1bbd5da6159541b813cc4b25 (patch) | |
| tree | f6129acde73c1d5b1a21afc08aa5fa583a9c6ad1 /src/core/hle/service/hid/hid_server.cpp | |
| parent | 91ad6b7098e06948ea386f883ae816ad2cb809be (diff) | |
| parent | e21f96ffde30d66337bd119c04a13f1025be159c (diff) | |
Merge pull request #12201 from Macj0rdan/controller-applet-fix
Fixed controller applet crashing when on FW17+
Diffstat (limited to 'src/core/hle/service/hid/hid_server.cpp')
| -rw-r--r-- | src/core/hle/service/hid/hid_server.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/hid_server.cpp b/src/core/hle/service/hid/hid_server.cpp index 583142e35..a7d1578d9 100644 --- a/src/core/hle/service/hid/hid_server.cpp +++ b/src/core/hle/service/hid/hid_server.cpp @@ -208,6 +208,7 @@ IHidServer::IHidServer(Core::System& system_, std::shared_ptr<ResourceManager> r {1001, &IHidServer::GetNpadCommunicationMode, "GetNpadCommunicationMode"}, {1002, &IHidServer::SetTouchScreenConfiguration, "SetTouchScreenConfiguration"}, {1003, &IHidServer::IsFirmwareUpdateNeededForNotification, "IsFirmwareUpdateNeededForNotification"}, + {1004, &IHidServer::SetTouchScreenResolution, "SetTouchScreenResolution"}, {2000, nullptr, "ActivateDigitizer"}, }; // clang-format on @@ -2363,6 +2364,21 @@ void IHidServer::IsFirmwareUpdateNeededForNotification(HLERequestContext& ctx) { rb.Push(false); } +void IHidServer::SetTouchScreenResolution(HLERequestContext& ctx) { + IPC::RequestParser rp{ctx}; + const auto width{rp.Pop<u32>()}; + const auto height{rp.Pop<u32>()}; + const auto applet_resource_user_id{rp.Pop<u64>()}; + + GetResourceManager()->GetTouchScreen()->SetTouchscreenDimensions(width, height); + + LOG_INFO(Service_HID, "called, width={}, height={}, applet_resource_user_id={}", width, height, + applet_resource_user_id); + + IPC::ResponseBuilder rb{ctx, 2}; + rb.Push(ResultSuccess); +} + std::shared_ptr<ResourceManager> IHidServer::GetResourceManager() { resource_manager->Initialize(); return resource_manager; |
