From 80c39f2ff4ad1ef3efa9d7d08af263260c82588a Mon Sep 17 00:00:00 2001 From: hwsmm <9151706+hwsmm@users.noreply.github.com> Date: Tue, 12 Nov 2024 22:54:29 +0900 Subject: [PATCH] Expose SDL_GetPenStatus for Android pen buttons --- src/events/SDL_pen.c | 20 ++++++++++---------- src/events/SDL_pen_c.h | 3 +++ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/events/SDL_pen.c b/src/events/SDL_pen.c index 65f7720853..509dc2c8e5 100644 --- a/src/events/SDL_pen.c +++ b/src/events/SDL_pen.c @@ -158,6 +158,16 @@ bool SDL_GetPenInfo(SDL_PenID instance_id, SDL_PenInfo *info) return result; } +bool SDL_PenConnected(SDL_PenID instance_id) +{ + SDL_LockRWLockForReading(pen_device_rwlock); + const SDL_Pen *pen = FindPenByInstanceId(instance_id); + const bool result = (pen != NULL); + SDL_UnlockRWLock(pen_device_rwlock); + return result; +} +#endif + SDL_PenInputFlags SDL_GetPenStatus(SDL_PenID instance_id, float *axes, int num_axes) { if (num_axes < 0) { @@ -181,16 +191,6 @@ SDL_PenInputFlags SDL_GetPenStatus(SDL_PenID instance_id, float *axes, int num_a return result; } -bool SDL_PenConnected(SDL_PenID instance_id) -{ - SDL_LockRWLockForReading(pen_device_rwlock); - const SDL_Pen *pen = FindPenByInstanceId(instance_id); - const bool result = (pen != NULL); - SDL_UnlockRWLock(pen_device_rwlock); - return result; -} -#endif - SDL_PenCapabilityFlags SDL_GetPenCapabilityFromAxis(SDL_PenAxis axis) { // the initial capability bits happen to match up, but as diff --git a/src/events/SDL_pen_c.h b/src/events/SDL_pen_c.h index 7e069b0005..3b24551c7d 100644 --- a/src/events/SDL_pen_c.h +++ b/src/events/SDL_pen_c.h @@ -84,6 +84,9 @@ extern SDL_PenID SDL_FindPenByHandle(void *handle); // Backend can optionally use this to find a SDL_PenID, selected by a callback examining all devices. Zero if not found. extern SDL_PenID SDL_FindPenByCallback(bool (*callback)(void *handle, void *userdata), void *userdata); +// Backend can use this to query current pen status. +SDL_PenInputFlags SDL_GetPenStatus(SDL_PenID instance_id, float *axes, int num_axes); + // Backend can use this to map an axis to a capability bit. SDL_PenCapabilityFlags SDL_GetPenCapabilityFromAxis(SDL_PenAxis axis);