mirror of https://github.com/encounter/SDL.git
Fixed bug #2032: add SDL_GetTouchName to expose the driver name of the device (Thanks @mgerhardy!)
This commit is contained in:
parent
8ce003a42c
commit
34d4f5b14e
|
@ -95,6 +95,11 @@ extern DECLSPEC int SDLCALL SDL_GetNumTouchDevices(void);
|
||||||
*/
|
*/
|
||||||
extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index);
|
extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Get the touch device name as reported from the driver or NULL if the index is invalid.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC const char* SDLCALL SDL_GetTouchName(int index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the type of the given touch device.
|
* Get the type of the given touch device.
|
||||||
*
|
*
|
||||||
|
|
|
@ -63,6 +63,16 @@ SDL_GetTouchDevice(int index)
|
||||||
return SDL_touchDevices[index]->id;
|
return SDL_touchDevices[index]->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char*
|
||||||
|
SDL_GetTouchName(int index)
|
||||||
|
{
|
||||||
|
if (index < 0 || index >= SDL_num_touch) {
|
||||||
|
SDL_SetError("Unknown touch device");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return SDL_touchDevices[index]->name;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
SDL_GetTouchIndex(SDL_TouchID id)
|
SDL_GetTouchIndex(SDL_TouchID id)
|
||||||
{
|
{
|
||||||
|
@ -185,6 +195,7 @@ SDL_AddTouch(SDL_TouchID touchID, SDL_TouchDeviceType type, const char *name)
|
||||||
SDL_touchDevices[index]->num_fingers = 0;
|
SDL_touchDevices[index]->num_fingers = 0;
|
||||||
SDL_touchDevices[index]->max_fingers = 0;
|
SDL_touchDevices[index]->max_fingers = 0;
|
||||||
SDL_touchDevices[index]->fingers = NULL;
|
SDL_touchDevices[index]->fingers = NULL;
|
||||||
|
SDL_touchDevices[index]->name = SDL_strdup(name ? name : "");
|
||||||
|
|
||||||
/* Record this touch device for gestures */
|
/* Record this touch device for gestures */
|
||||||
/* We could do this on the fly in the gesture code if we wanted */
|
/* We could do this on the fly in the gesture code if we wanted */
|
||||||
|
@ -452,6 +463,7 @@ SDL_DelTouch(SDL_TouchID id)
|
||||||
SDL_free(touch->fingers[i]);
|
SDL_free(touch->fingers[i]);
|
||||||
}
|
}
|
||||||
SDL_free(touch->fingers);
|
SDL_free(touch->fingers);
|
||||||
|
SDL_free(touch->name);
|
||||||
SDL_free(touch);
|
SDL_free(touch);
|
||||||
|
|
||||||
SDL_num_touch--;
|
SDL_num_touch--;
|
||||||
|
|
|
@ -31,6 +31,7 @@ typedef struct SDL_Touch
|
||||||
int num_fingers;
|
int num_fingers;
|
||||||
int max_fingers;
|
int max_fingers;
|
||||||
SDL_Finger** fingers;
|
SDL_Finger** fingers;
|
||||||
|
char *name;
|
||||||
} SDL_Touch;
|
} SDL_Touch;
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue