mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-22 21:02:39 +02:00
Add hidMouseRead, allows mouse position/velocity/scrollwheel velocity to be fetched
This commit is contained in:
parent
1b255bfe15
commit
954a48b8fe
@ -328,6 +328,16 @@ typedef struct JoystickPosition
|
|||||||
s32 dy;
|
s32 dy;
|
||||||
} JoystickPosition;
|
} JoystickPosition;
|
||||||
|
|
||||||
|
typedef struct MousePosition
|
||||||
|
{
|
||||||
|
u32 x;
|
||||||
|
u32 y;
|
||||||
|
u32 velocityX;
|
||||||
|
u32 velocityY;
|
||||||
|
u32 scrollVelocityX;
|
||||||
|
u32 scrollVelocityY;
|
||||||
|
} MousePosition;
|
||||||
|
|
||||||
#define JOYSTICK_MAX (0x8000)
|
#define JOYSTICK_MAX (0x8000)
|
||||||
#define JOYSTICK_MIN (-0x8000)
|
#define JOYSTICK_MIN (-0x8000)
|
||||||
|
|
||||||
@ -399,12 +409,7 @@ typedef struct HidMouseEntry
|
|||||||
{
|
{
|
||||||
u64 timestamp;
|
u64 timestamp;
|
||||||
u64 timestamp_2;
|
u64 timestamp_2;
|
||||||
u32 x;
|
MousePosition position;
|
||||||
u32 y;
|
|
||||||
u32 velocityX;
|
|
||||||
u32 velocityY;
|
|
||||||
u32 scrollVelocityX;
|
|
||||||
u32 scrollVelocityY;
|
|
||||||
u64 buttons;
|
u64 buttons;
|
||||||
} HidMouseEntry;
|
} HidMouseEntry;
|
||||||
static_assert(sizeof(HidMouseEntry) == 0x30, "Hid mouse entry structure has incorrect size");
|
static_assert(sizeof(HidMouseEntry) == 0x30, "Hid mouse entry structure has incorrect size");
|
||||||
@ -552,6 +557,7 @@ u64 hidKeysUp(HidControllerID id);
|
|||||||
u64 hidMouseButtonsHeld(void);
|
u64 hidMouseButtonsHeld(void);
|
||||||
u64 hidMouseButtonsDown(void);
|
u64 hidMouseButtonsDown(void);
|
||||||
u64 hidMouseButtonsUp(void);
|
u64 hidMouseButtonsUp(void);
|
||||||
|
void hidMouseRead(MousePosition *pos);
|
||||||
|
|
||||||
bool hidKeyboardModifierHeld(HidKeyboardModifier modifier);
|
bool hidKeyboardModifierHeld(HidKeyboardModifier modifier);
|
||||||
bool hidKeyboardModifierDown(HidKeyboardModifier modifier);
|
bool hidKeyboardModifierDown(HidKeyboardModifier modifier);
|
||||||
|
@ -267,6 +267,12 @@ u64 hidMouseButtonsUp(void) {
|
|||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hidMouseRead(MousePosition *pos) {
|
||||||
|
rwlockReadLock(&g_hidLock);
|
||||||
|
*pos = g_mouseEntry.position;
|
||||||
|
rwlockReadUnlock(&g_hidLock);
|
||||||
|
}
|
||||||
|
|
||||||
bool hidKeyboardModifierHeld(HidKeyboardModifier modifier) {
|
bool hidKeyboardModifierHeld(HidKeyboardModifier modifier) {
|
||||||
rwlockReadLock(&g_hidLock);
|
rwlockReadLock(&g_hidLock);
|
||||||
bool tmp = g_keyboardModHeld & modifier;
|
bool tmp = g_keyboardModHeld & modifier;
|
||||||
|
Loading…
Reference in New Issue
Block a user