SDL: Expose SDL_GetPenStatus for Android pen buttons

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);