Expose SDL_GetPenStatus for Android pen buttons

This commit is contained in:
hwsmm 2024-11-12 22:54:29 +09:00 committed by Ryan C. Gordon
parent e3c99e3bd3
commit 80c39f2ff4
2 changed files with 13 additions and 10 deletions

View file

@ -158,6 +158,16 @@ bool SDL_GetPenInfo(SDL_PenID instance_id, SDL_PenInfo *info)
return result; 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) SDL_PenInputFlags SDL_GetPenStatus(SDL_PenID instance_id, float *axes, int num_axes)
{ {
if (num_axes < 0) { if (num_axes < 0) {
@ -181,16 +191,6 @@ SDL_PenInputFlags SDL_GetPenStatus(SDL_PenID instance_id, float *axes, int num_a
return result; 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) SDL_PenCapabilityFlags SDL_GetPenCapabilityFromAxis(SDL_PenAxis axis)
{ {
// the initial capability bits happen to match up, but as // the initial capability bits happen to match up, but as

View file

@ -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. // 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); 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. // Backend can use this to map an axis to a capability bit.
SDL_PenCapabilityFlags SDL_GetPenCapabilityFromAxis(SDL_PenAxis axis); SDL_PenCapabilityFlags SDL_GetPenCapabilityFromAxis(SDL_PenAxis axis);