From 620e3699ec42a6457e1dc6a1831702100195190f Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Thu, 3 Jul 2025 03:47:06 +0300 Subject: [PATCH] HID/IR: Cleanup and minor fixes (#768) --- include/services/hid.hpp | 8 ++++---- include/services/ir/circlepad_pro.hpp | 6 +++--- src/core/services/hid.cpp | 5 +++-- src/core/services/ir/ir_user.cpp | 1 - 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/services/hid.hpp b/include/services/hid.hpp index 642cd6f3..91bc16da 100644 --- a/include/services/hid.hpp +++ b/include/services/hid.hpp @@ -124,9 +124,9 @@ class HIDService { // Then, set them according to the new value of x newButtons &= ~(HID::Keys::CirclePadLeft | HID::Keys::CirclePadRight); if (x >= 41) // Pressing right - newButtons |= 1 << 28; + newButtons |= HID::Keys::CirclePadRight; else if (x <= -41) // Pressing left - newButtons |= 1 << 29; + newButtons |= HID::Keys::CirclePadLeft; } void setCirclepadY(s16 y) { @@ -136,9 +136,9 @@ class HIDService { // Then, set them according to the new value of y newButtons &= ~(HID::Keys::CirclePadUp | HID::Keys::CirclePadDown); if (y >= 41) // Pressing up - newButtons |= 1 << 30; + newButtons |= HID::Keys::CirclePadUp; else if (y <= -41) // Pressing down - newButtons |= 1 << 31; + newButtons |= HID::Keys::CirclePadDown; } void setCStickX(s16 x) { cStickX = x; } diff --git a/include/services/ir/circlepad_pro.hpp b/include/services/ir/circlepad_pro.hpp index 4cee6007..9edc068c 100644 --- a/include/services/ir/circlepad_pro.hpp +++ b/include/services/ir/circlepad_pro.hpp @@ -26,9 +26,9 @@ namespace IR { ButtonState() { // Response header for button state reads - cStick.header = static_cast(CPPResponseID::PollButtons); - cStick.x = static_cast(CirclePadPro::ButtonState::C_STICK_CENTER); - cStick.y = static_cast(CirclePadPro::ButtonState::C_STICK_CENTER); + cStick.header = u8(CPPResponseID::PollButtons); + cStick.x = u32(CirclePadPro::ButtonState::C_STICK_CENTER); + cStick.y = u32(CirclePadPro::ButtonState::C_STICK_CENTER); // Fully charged buttons.batteryLevel = 0x1F; diff --git a/src/core/services/hid.cpp b/src/core/services/hid.cpp index 997884f1..ce927316 100644 --- a/src/core/services/hid.cpp +++ b/src/core/services/hid.cpp @@ -4,6 +4,7 @@ #include "ipc.hpp" #include "kernel.hpp" +#include "services/ir/circlepad_pro.hpp" namespace HIDCommands { enum : u32 { @@ -39,7 +40,7 @@ void HIDService::reset() { roll = pitch = yaw = 0; accelX = accelY = accelZ = 0; - cStickX = cStickY = 0; + cStickX = cStickY = IR::CirclePadPro::ButtonState::C_STICK_CENTER; } void HIDService::handleSyncRequest(u32 messagePointer) { @@ -170,7 +171,7 @@ void HIDService::updateInputs(u64 currentTick) { const size_t padEntryOffset = 0x28 + (nextPadIndex * 0x10); // Offset in the array of 8 pad entries nextPadIndex = (nextPadIndex + 1) % 8; // Move to next entry - const u32 pressed = (currentButtons ^ previousButtons) & currentButtons; // Pressed buttons + const u32 pressed = (currentButtons ^ previousButtons) & currentButtons; // Pressed buttons const u32 released = (currentButtons ^ previousButtons) & previousButtons; // Released buttons writeSharedMem(padEntryOffset, currentButtons); diff --git a/src/core/services/ir/ir_user.cpp b/src/core/services/ir/ir_user.cpp index 631ade57..48aed958 100644 --- a/src/core/services/ir/ir_user.cpp +++ b/src/core/services/ir/ir_user.cpp @@ -10,7 +10,6 @@ #include "kernel.hpp" #include "services/ir/ir_types.hpp" -#define log printf using namespace IR; namespace IRUserCommands {