fix: Implement SetGestureOutputRanges to handle unimplemented function error

- Added the SetGestureOutputRanges function to the IHidServer class to address the unimplemented function '92' error.
- This fix was discovered through log analysis, which showed a critical assertion failure in the HID service for an unknown function '92'.
- The log indicated a userspace panic and backtrace, pointing to the need for implementing this function to prevent execution breaks.
- Updated CMakeLists.txt to remove specific version requirements for several packages, enhancing flexibility.
- Updated subproject commit references for VulkanMemoryAllocator and vcpkg.

- REF: https://switchbrew.org/wiki/HID_services#ActivateGesture
This commit is contained in:
Zephyron 2025-01-15 19:20:37 +10:00
parent 236ad28d61
commit 132077e18f
5 changed files with 18 additions and 9 deletions

View file

@ -184,6 +184,7 @@ IHidServer::IHidServer(Core::System& system_, std::shared_ptr<ResourceManager> r
{1003, C<&IHidServer::IsFirmwareUpdateNeededForNotification>, "IsFirmwareUpdateNeededForNotification"},
{1004, C<&IHidServer::SetTouchScreenResolution>, "SetTouchScreenResolution"},
{2000, nullptr, "ActivateDigitizer"},
{92, C<&IHidServer::SetGestureOutputRanges>, "SetGestureOutputRanges"},
};
// clang-format on
@ -1436,4 +1437,10 @@ std::shared_ptr<ResourceManager> IHidServer::GetResourceManager() {
return resource_manager;
}
Result IHidServer::SetGestureOutputRanges(u32 param1, u32 param2, u32 param3, u32 param4) {
LOG_WARNING(Service_HID, "SetGestureOutputRanges called with params: {}, {}, {}, {}", param1, param2, param3, param4);
// REF: https://switchbrew.org/wiki/HID_services , Undocumented. 92 [18.0.0+] SetGestureOutputRanges
R_SUCCEED();
}
} // namespace Service::HID

View file

@ -31,6 +31,8 @@ public:
std::shared_ptr<ResourceManager> GetResourceManager();
Result SetGestureOutputRanges(u32, u32, u32, u32);
private:
Result CreateAppletResource(OutInterface<IAppletResource> out_applet_resource,
ClientAppletResourceUserId aruid);