From 80c39f2ff4ad1ef3efa9d7d08af263260c82588a Mon Sep 17 00:00:00 2001
From: hwsmm <[EMAIL REDACTED]>
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 65f7720853fc9..509dc2c8e54b9 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 7e069b00052af..3b24551c7d4d0 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);