Update for SDL3 coding style (#6717)

I updated .clang-format and ran clang-format 14 over the src and test directories to standardize the code base.

In general I let clang-format have it's way, and added markup to prevent formatting of code that would break or be completely unreadable if formatted.

The script I ran for the src directory is added as build-scripts/clang-format-src.sh

This fixes:
#6592
#6593
#6594
This commit is contained in:
Sam Lantinga 2022-11-30 12:51:59 -08:00 committed by GitHub
parent 14b902faca
commit 5750bcb174
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
781 changed files with 51659 additions and 55763 deletions

View file

@ -36,20 +36,19 @@
#if defined(__ANDROID__)
#endif
/* Many controllers turn the center button into an instantaneous button press */
#define SDL_MINIMUM_GUIDE_BUTTON_DELAY_MS 250
#define SDL_MINIMUM_GUIDE_BUTTON_DELAY_MS 250
#define SDL_CONTROLLER_CRC_FIELD "crc:"
#define SDL_CONTROLLER_CRC_FIELD_SIZE 4 /* hard-coded for speed */
#define SDL_CONTROLLER_PLATFORM_FIELD "platform:"
#define SDL_CONTROLLER_PLATFORM_FIELD_SIZE SDL_strlen(SDL_CONTROLLER_PLATFORM_FIELD)
#define SDL_CONTROLLER_HINT_FIELD "hint:"
#define SDL_CONTROLLER_HINT_FIELD_SIZE SDL_strlen(SDL_CONTROLLER_HINT_FIELD)
#define SDL_CONTROLLER_SDKGE_FIELD "sdk>=:"
#define SDL_CONTROLLER_SDKGE_FIELD_SIZE SDL_strlen(SDL_CONTROLLER_SDKGE_FIELD)
#define SDL_CONTROLLER_SDKLE_FIELD "sdk<=:"
#define SDL_CONTROLLER_SDKLE_FIELD_SIZE SDL_strlen(SDL_CONTROLLER_SDKLE_FIELD)
#define SDL_CONTROLLER_CRC_FIELD "crc:"
#define SDL_CONTROLLER_CRC_FIELD_SIZE 4 /* hard-coded for speed */
#define SDL_CONTROLLER_PLATFORM_FIELD "platform:"
#define SDL_CONTROLLER_PLATFORM_FIELD_SIZE SDL_strlen(SDL_CONTROLLER_PLATFORM_FIELD)
#define SDL_CONTROLLER_HINT_FIELD "hint:"
#define SDL_CONTROLLER_HINT_FIELD_SIZE SDL_strlen(SDL_CONTROLLER_HINT_FIELD)
#define SDL_CONTROLLER_SDKGE_FIELD "sdk>=:"
#define SDL_CONTROLLER_SDKGE_FIELD_SIZE SDL_strlen(SDL_CONTROLLER_SDKGE_FIELD)
#define SDL_CONTROLLER_SDKLE_FIELD "sdk<=:"
#define SDL_CONTROLLER_SDKLE_FIELD_SIZE SDL_strlen(SDL_CONTROLLER_SDKLE_FIELD)
/* a list of currently opened game controllers */
static SDL_GameController *SDL_gamecontrollers = NULL;
@ -61,13 +60,15 @@ typedef struct
{
int button;
struct {
struct
{
int axis;
int axis_min;
int axis_max;
} axis;
struct {
struct
{
int hat;
int hat_mask;
} hat;
@ -79,7 +80,8 @@ typedef struct
{
SDL_GameControllerButton button;
struct {
struct
{
SDL_GameControllerAxis axis;
int axis_min;
int axis_max;
@ -131,12 +133,11 @@ struct _SDL_GameController
struct _SDL_GameController *next; /* pointer to next game controller we have allocated */
};
#define CHECK_GAMECONTROLLER_MAGIC(gamecontroller, retval) \
#define CHECK_GAMECONTROLLER_MAGIC(gamecontroller, retval) \
if (!gamecontroller || gamecontroller->magic != &gamecontroller_magic || \
!SDL_PrivateJoystickValid(gamecontroller->joystick)) { \
SDL_InvalidParamError("gamecontroller"); \
return retval; \
!SDL_PrivateJoystickValid(gamecontroller->joystick)) { \
SDL_InvalidParamError("gamecontroller"); \
return retval; \
}
typedef struct
@ -149,8 +150,7 @@ typedef struct
static SDL_vidpid_list SDL_allowed_controllers;
static SDL_vidpid_list SDL_ignored_controllers;
static void
SDL_LoadVIDPIDListFromHint(const char *hint, SDL_vidpid_list *list)
static void SDL_LoadVIDPIDListFromHint(const char *hint, SDL_vidpid_list *list)
{
Uint32 entry;
char *spot;
@ -159,7 +159,7 @@ SDL_LoadVIDPIDListFromHint(const char *hint, SDL_vidpid_list *list)
list->num_entries = 0;
if (hint && *hint == '@') {
spot = file = (char *)SDL_LoadFile(hint+1, NULL);
spot = file = (char *)SDL_LoadFile(hint + 1, NULL);
} else {
spot = (char *)hint;
}
@ -179,7 +179,7 @@ SDL_LoadVIDPIDListFromHint(const char *hint, SDL_vidpid_list *list)
if (list->num_entries == list->max_entries) {
int max_entries = list->max_entries + 16;
Uint32 *entries = (Uint32 *)SDL_realloc(list->entries, max_entries*sizeof(*list->entries));
Uint32 *entries = (Uint32 *)SDL_realloc(list->entries, max_entries * sizeof(*list->entries));
if (entries == NULL) {
/* Out of memory, go with what we have already */
break;
@ -195,14 +195,12 @@ SDL_LoadVIDPIDListFromHint(const char *hint, SDL_vidpid_list *list)
}
}
static void SDLCALL
SDL_GameControllerIgnoreDevicesChanged(void *userdata, const char *name, const char *oldValue, const char *hint)
static void SDLCALL SDL_GameControllerIgnoreDevicesChanged(void *userdata, const char *name, const char *oldValue, const char *hint)
{
SDL_LoadVIDPIDListFromHint(hint, &SDL_ignored_controllers);
}
static void SDLCALL
SDL_GameControllerIgnoreDevicesExceptChanged(void *userdata, const char *name, const char *oldValue, const char *hint)
static void SDLCALL SDL_GameControllerIgnoreDevicesExceptChanged(void *userdata, const char *name, const char *oldValue, const char *hint)
{
SDL_LoadVIDPIDListFromHint(hint, &SDL_allowed_controllers);
}
@ -337,7 +335,6 @@ static void HandleJoystickHat(SDL_GameController *gamecontroller, int hat, Uint8
gamecontroller->last_hat_mask[hat] = value;
}
/* The joystick layer will _also_ send events to recenter before disconnect,
but it has to make (sometimes incorrect) guesses at what being "centered"
is. The game controller layer, however, can set a definite logical idle
@ -351,94 +348,88 @@ static void RecenterGameController(SDL_GameController *gamecontroller)
CHECK_GAMECONTROLLER_MAGIC(gamecontroller, );
for (button = (SDL_GameControllerButton) 0; button < SDL_CONTROLLER_BUTTON_MAX; button++) {
for (button = (SDL_GameControllerButton)0; button < SDL_CONTROLLER_BUTTON_MAX; button++) {
if (SDL_GameControllerGetButton(gamecontroller, button)) {
SDL_PrivateGameControllerButton(gamecontroller, button, SDL_RELEASED);
}
}
for (axis = (SDL_GameControllerAxis) 0; axis < SDL_CONTROLLER_AXIS_MAX; axis++) {
for (axis = (SDL_GameControllerAxis)0; axis < SDL_CONTROLLER_AXIS_MAX; axis++) {
if (SDL_GameControllerGetAxis(gamecontroller, axis) != 0) {
SDL_PrivateGameControllerAxis(gamecontroller, axis, 0);
}
}
}
/*
* Event filter to fire controller events from joystick ones
*/
static int SDLCALL SDL_GameControllerEventWatcher(void *userdata, SDL_Event * event)
static int SDLCALL SDL_GameControllerEventWatcher(void *userdata, SDL_Event *event)
{
switch(event->type) {
switch (event->type) {
case SDL_JOYAXISMOTION:
{
SDL_GameController *controllerlist = SDL_gamecontrollers;
while (controllerlist) {
if (controllerlist->joystick->instance_id == event->jaxis.which) {
HandleJoystickAxis(controllerlist, event->jaxis.axis, event->jaxis.value);
break;
}
controllerlist = controllerlist->next;
{
SDL_GameController *controllerlist = SDL_gamecontrollers;
while (controllerlist) {
if (controllerlist->joystick->instance_id == event->jaxis.which) {
HandleJoystickAxis(controllerlist, event->jaxis.axis, event->jaxis.value);
break;
}
controllerlist = controllerlist->next;
}
break;
} break;
case SDL_JOYBUTTONDOWN:
case SDL_JOYBUTTONUP:
{
SDL_GameController *controllerlist = SDL_gamecontrollers;
while (controllerlist) {
if (controllerlist->joystick->instance_id == event->jbutton.which) {
HandleJoystickButton(controllerlist, event->jbutton.button, event->jbutton.state);
break;
}
controllerlist = controllerlist->next;
{
SDL_GameController *controllerlist = SDL_gamecontrollers;
while (controllerlist) {
if (controllerlist->joystick->instance_id == event->jbutton.which) {
HandleJoystickButton(controllerlist, event->jbutton.button, event->jbutton.state);
break;
}
controllerlist = controllerlist->next;
}
break;
} break;
case SDL_JOYHATMOTION:
{
SDL_GameController *controllerlist = SDL_gamecontrollers;
while (controllerlist) {
if (controllerlist->joystick->instance_id == event->jhat.which) {
HandleJoystickHat(controllerlist, event->jhat.hat, event->jhat.value);
break;
}
controllerlist = controllerlist->next;
{
SDL_GameController *controllerlist = SDL_gamecontrollers;
while (controllerlist) {
if (controllerlist->joystick->instance_id == event->jhat.which) {
HandleJoystickHat(controllerlist, event->jhat.hat, event->jhat.value);
break;
}
controllerlist = controllerlist->next;
}
break;
} break;
case SDL_JOYDEVICEADDED:
{
if (SDL_IsGameController(event->jdevice.which)) {
SDL_Event deviceevent;
deviceevent.type = SDL_CONTROLLERDEVICEADDED;
deviceevent.cdevice.which = event->jdevice.which;
SDL_PushEvent(&deviceevent);
}
{
if (SDL_IsGameController(event->jdevice.which)) {
SDL_Event deviceevent;
deviceevent.type = SDL_CONTROLLERDEVICEADDED;
deviceevent.cdevice.which = event->jdevice.which;
SDL_PushEvent(&deviceevent);
}
break;
} break;
case SDL_JOYDEVICEREMOVED:
{
SDL_GameController *controllerlist = SDL_gamecontrollers;
while (controllerlist) {
if (controllerlist->joystick->instance_id == event->jdevice.which) {
RecenterGameController(controllerlist);
break;
}
controllerlist = controllerlist->next;
}
/* We don't know if this was a game controller, so go ahead and send an event */
{
SDL_Event deviceevent;
deviceevent.type = SDL_CONTROLLERDEVICEREMOVED;
deviceevent.cdevice.which = event->jdevice.which;
SDL_PushEvent(&deviceevent);
{
SDL_GameController *controllerlist = SDL_gamecontrollers;
while (controllerlist) {
if (controllerlist->joystick->instance_id == event->jdevice.which) {
RecenterGameController(controllerlist);
break;
}
controllerlist = controllerlist->next;
}
break;
/* We don't know if this was a game controller, so go ahead and send an event */
{
SDL_Event deviceevent;
deviceevent.type = SDL_CONTROLLERDEVICEREMOVED;
deviceevent.cdevice.which = event->jdevice.which;
SDL_PushEvent(&deviceevent);
}
} break;
default:
break;
}
@ -461,8 +452,8 @@ static ControllerMapping_t *SDL_CreateMappingForAndroidController(SDL_JoystickGU
int button_mask;
int axis_mask;
button_mask = SDL_SwapLE16(*(Uint16*)(&guid.data[sizeof(guid.data)-4]));
axis_mask = SDL_SwapLE16(*(Uint16*)(&guid.data[sizeof(guid.data)-2]));
button_mask = SDL_SwapLE16(*(Uint16 *)(&guid.data[sizeof(guid.data) - 4]));
axis_mask = SDL_SwapLE16(*(Uint16 *)(&guid.data[sizeof(guid.data) - 2]));
if (!button_mask && !axis_mask) {
/* Accelerometer, shouldn't have a game controller mapping */
return NULL;
@ -590,17 +581,16 @@ static ControllerMapping_t *SDL_CreateMappingForHIDAPIController(SDL_JoystickGUI
SDL_strlcat(mapping_string, "a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,start:b6,x:b2,y:b3,", sizeof(mapping_string));
break;
case k_eWiiExtensionControllerType_Nunchuk:
{
/* FIXME: Should we map this to the left or right side? */
const SDL_bool map_nunchuck_left_side = SDL_TRUE;
{
/* FIXME: Should we map this to the left or right side? */
const SDL_bool map_nunchuck_left_side = SDL_TRUE;
if (map_nunchuck_left_side) {
SDL_strlcat(mapping_string, "a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:a4,leftx:a0,lefty:a1,start:b6,x:b2,y:b3,", sizeof(mapping_string));
} else {
SDL_strlcat(mapping_string, "a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,rightshoulder:b9,righttrigger:a4,rightx:a0,righty:a1,start:b6,x:b2,y:b3,", sizeof(mapping_string));
}
if (map_nunchuck_left_side) {
SDL_strlcat(mapping_string, "a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:a4,leftx:a0,lefty:a1,start:b6,x:b2,y:b3,", sizeof(mapping_string));
} else {
SDL_strlcat(mapping_string, "a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,rightshoulder:b9,righttrigger:a4,rightx:a0,righty:a1,start:b6,x:b2,y:b3,", sizeof(mapping_string));
}
break;
} break;
default:
if (SDL_GetHintBoolean(SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS, SDL_FALSE)) {
/* Vertical mode */
@ -746,7 +736,7 @@ static ControllerMapping_t *SDL_PrivateMatchControllerMappingForGUID(SDL_Joystic
Uint16 mapping_crc = 0;
const char *crc_string = SDL_strstr(mapping->mapping, SDL_CONTROLLER_CRC_FIELD);
if (crc_string) {
mapping_crc = (Uint16)SDL_strtol(crc_string + SDL_CONTROLLER_CRC_FIELD_SIZE, NULL, 16);
mapping_crc = (Uint16)SDL_strtol(crc_string + SDL_CONTROLLER_CRC_FIELD_SIZE, NULL, 16);
}
if (crc == mapping_crc) {
return mapping;
@ -818,7 +808,7 @@ static ControllerMapping_t *SDL_PrivateGetControllerMappingForGUID(SDL_JoystickG
return mapping;
}
static const char* map_StringForControllerAxis[] = {
static const char *map_StringForControllerAxis[] = {
"leftx",
"lefty",
"rightx",
@ -854,7 +844,7 @@ SDL_GameControllerAxis SDL_GameControllerGetAxisFromString(const char *pchString
/*
* convert an enum to its string equivalent
*/
const char* SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis)
const char *SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis)
{
if (axis > SDL_CONTROLLER_AXIS_INVALID && axis < SDL_CONTROLLER_AXIS_MAX) {
return map_StringForControllerAxis[axis];
@ -862,7 +852,7 @@ const char* SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis)
return NULL;
}
static const char* map_StringForControllerButton[] = {
static const char *map_StringForControllerButton[] = {
"a",
"b",
"x",
@ -908,7 +898,7 @@ SDL_GameControllerButton SDL_GameControllerGetButtonFromString(const char *pchSt
/*
* convert an enum to its string equivalent
*/
const char* SDL_GameControllerGetStringForButton(SDL_GameControllerButton axis)
const char *SDL_GameControllerGetStringForButton(SDL_GameControllerButton axis)
{
if (axis > SDL_CONTROLLER_BUTTON_INVALID && axis < SDL_CONTROLLER_BUTTON_MAX) {
return map_StringForControllerButton[axis];
@ -969,7 +959,7 @@ static void SDL_PrivateGameControllerParseElement(SDL_GameController *gamecontro
invert_input = SDL_TRUE;
}
if (szJoystickButton[0] == 'a' && SDL_isdigit((unsigned char) szJoystickButton[1])) {
if (szJoystickButton[0] == 'a' && SDL_isdigit((unsigned char)szJoystickButton[1])) {
bind.inputType = SDL_CONTROLLER_BINDTYPE_AXIS;
bind.input.axis.axis = SDL_atoi(&szJoystickButton[1]);
if (half_axis_input == '+') {
@ -987,11 +977,11 @@ static void SDL_PrivateGameControllerParseElement(SDL_GameController *gamecontro
bind.input.axis.axis_min = bind.input.axis.axis_max;
bind.input.axis.axis_max = tmp;
}
} else if (szJoystickButton[0] == 'b' && SDL_isdigit((unsigned char) szJoystickButton[1])) {
} else if (szJoystickButton[0] == 'b' && SDL_isdigit((unsigned char)szJoystickButton[1])) {
bind.inputType = SDL_CONTROLLER_BINDTYPE_BUTTON;
bind.input.button = SDL_atoi(&szJoystickButton[1]);
} else if (szJoystickButton[0] == 'h' && SDL_isdigit((unsigned char) szJoystickButton[1]) &&
szJoystickButton[2] == '.' && SDL_isdigit((unsigned char) szJoystickButton[3])) {
} else if (szJoystickButton[0] == 'h' && SDL_isdigit((unsigned char)szJoystickButton[1]) &&
szJoystickButton[2] == '.' && SDL_isdigit((unsigned char)szJoystickButton[3])) {
int hat = SDL_atoi(&szJoystickButton[1]);
int mask = SDL_atoi(&szJoystickButton[3]);
bind.inputType = SDL_CONTROLLER_BINDTYPE_HAT;
@ -1012,12 +1002,10 @@ static void SDL_PrivateGameControllerParseElement(SDL_GameController *gamecontro
gamecontroller->bindings[gamecontroller->num_bindings - 1] = bind;
}
/*
* given a controller mapping string update our mapping object
*/
static void
SDL_PrivateGameControllerParseControllerConfigString(SDL_GameController *gamecontroller, const char *pchString)
static void SDL_PrivateGameControllerParseControllerConfigString(SDL_GameController *gamecontroller, const char *pchString)
{
char szGameButton[20];
char szJoystickButton[20];
@ -1094,13 +1082,12 @@ static void SDL_PrivateLoadButtonMapping(SDL_GameController *gamecontroller, Con
binding->output.axis.axis == SDL_CONTROLLER_AXIS_TRIGGERRIGHT)) {
if (binding->input.axis.axis < gamecontroller->joystick->naxes) {
gamecontroller->joystick->axes[binding->input.axis.axis].value =
gamecontroller->joystick->axes[binding->input.axis.axis].zero = (Sint16)binding->input.axis.axis_min;
gamecontroller->joystick->axes[binding->input.axis.axis].zero = (Sint16)binding->input.axis.axis_min;
}
}
}
}
/*
* grab the guid string from a mapping string
*/
@ -1139,7 +1126,6 @@ static char *SDL_PrivateGetControllerGUIDFromMappingString(const char *pMapping)
return NULL;
}
/*
* grab the name string from a mapping string
*/
@ -1168,7 +1154,6 @@ static char *SDL_PrivateGetControllerNameFromMappingString(const char *pMapping)
return pchName;
}
/*
* grab the button mapping string from a mapping string
*/
@ -1215,8 +1200,7 @@ static void SDL_PrivateGameControllerRefreshMapping(ControllerMapping_t *pContro
/*
* Helper function to add a mapping for a guid
*/
static ControllerMapping_t *
SDL_PrivateAddMappingForGUID(SDL_JoystickGUID jGUID, const char *mappingString, SDL_bool *existing, SDL_ControllerMappingPriority priority)
static ControllerMapping_t *SDL_PrivateAddMappingForGUID(SDL_JoystickGUID jGUID, const char *mappingString, SDL_bool *existing, SDL_ControllerMappingPriority priority)
{
char *pchName;
char *pchMapping;
@ -1307,9 +1291,9 @@ SDL_PrivateAddMappingForGUID(SDL_JoystickGUID jGUID, const char *mappingString,
/* Add the mapping to the end of the list */
ControllerMapping_t *pCurrMapping, *pPrevMapping;
for ( pPrevMapping = s_pSupportedControllers, pCurrMapping = pPrevMapping->next;
pCurrMapping;
pPrevMapping = pCurrMapping, pCurrMapping = pCurrMapping->next ) {
for (pPrevMapping = s_pSupportedControllers, pCurrMapping = pPrevMapping->next;
pCurrMapping;
pPrevMapping = pCurrMapping, pCurrMapping = pCurrMapping->next) {
/* continue; */
}
pPrevMapping->next = pControllerMapping;
@ -1335,8 +1319,8 @@ static ControllerMapping_t *SDL_PrivateGetControllerMappingForNameAndGUID(const
/* The Linux driver xpad.c maps the wireless dpad to buttons */
SDL_bool existing;
mapping = SDL_PrivateAddMappingForGUID(guid,
"none,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,",
&existing, SDL_CONTROLLER_MAPPING_PRIORITY_DEFAULT);
"none,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,",
&existing, SDL_CONTROLLER_MAPPING_PRIORITY_DEFAULT);
} else if (SDL_strstr(name, "Xbox") || SDL_strstr(name, "X-Box") || SDL_strstr(name, "XBOX")) {
mapping = s_pXInputMapping;
}
@ -1362,17 +1346,17 @@ static void SDL_PrivateAppendToMappingString(char *mapping_string,
SDL_strlcat(mapping_string, input_name, mapping_string_len);
SDL_strlcat(mapping_string, ":", mapping_string_len);
switch (mapping->kind) {
case EMappingKind_Button:
SDL_snprintf(buffer, sizeof(buffer), "b%i", mapping->target);
break;
case EMappingKind_Axis:
SDL_snprintf(buffer, sizeof(buffer), "a%i", mapping->target);
break;
case EMappingKind_Hat:
SDL_snprintf(buffer, sizeof(buffer), "h%i.%i", mapping->target >> 4, mapping->target & 0x0F);
break;
default:
SDL_assert(SDL_FALSE);
case EMappingKind_Button:
SDL_snprintf(buffer, sizeof(buffer), "b%i", mapping->target);
break;
case EMappingKind_Axis:
SDL_snprintf(buffer, sizeof(buffer), "a%i", mapping->target);
break;
case EMappingKind_Hat:
SDL_snprintf(buffer, sizeof(buffer), "h%i.%i", mapping->target >> 4, mapping->target & 0x0F);
break;
default:
SDL_assert(SDL_FALSE);
}
SDL_strlcat(mapping_string, buffer, mapping_string_len);
@ -1461,19 +1445,18 @@ static ControllerMapping_t *SDL_PrivateGetControllerMapping(int device_index)
/*
* Add or update an entry into the Mappings Database
*/
int
SDL_GameControllerAddMappingsFromRW(SDL_RWops * rw, int freerw)
int SDL_GameControllerAddMappingsFromRW(SDL_RWops *rw, int freerw)
{
const char *platform = SDL_GetPlatform();
int controllers = 0;
char *buf, *line, *line_end, *tmp, *comma, line_platform[64];
size_t db_size, platform_len;
if (rw == NULL) {
return SDL_SetError("Invalid RWops");
}
db_size = (size_t)SDL_RWsize(rw);
buf = (char *)SDL_malloc(db_size + 1);
if (buf == NULL) {
if (freerw) {
@ -1481,7 +1464,7 @@ SDL_GameControllerAddMappingsFromRW(SDL_RWops * rw, int freerw)
}
return SDL_SetError("Could not allocate space to read DB into memory");
}
if (SDL_RWread(rw, buf, db_size, 1) != 1) {
if (freerw) {
SDL_RWclose(rw);
@ -1489,14 +1472,14 @@ SDL_GameControllerAddMappingsFromRW(SDL_RWops * rw, int freerw)
SDL_free(buf);
return SDL_SetError("Could not read DB");
}
if (freerw) {
SDL_RWclose(rw);
}
buf[db_size] = '\0';
line = buf;
while (line < buf + db_size) {
line_end = SDL_strchr(line, '\n');
if (line_end != NULL) {
@ -1504,7 +1487,7 @@ SDL_GameControllerAddMappingsFromRW(SDL_RWops * rw, int freerw)
} else {
line_end = buf + db_size;
}
/* Extract and verify the platform */
tmp = SDL_strstr(line, SDL_CONTROLLER_PLATFORM_FIELD);
if (tmp != NULL) {
@ -1532,8 +1515,7 @@ SDL_GameControllerAddMappingsFromRW(SDL_RWops * rw, int freerw)
/*
* Add or update an entry into the Mappings Database with a priority
*/
static int
SDL_PrivateGameControllerAddMapping(const char *mappingString, SDL_ControllerMappingPriority priority)
static int SDL_PrivateGameControllerAddMapping(const char *mappingString, SDL_ControllerMappingPriority priority)
{
char *pchGUID;
SDL_JoystickGUID jGUID;
@ -1640,8 +1622,7 @@ SDL_PrivateGameControllerAddMapping(const char *mappingString, SDL_ControllerMap
/*
* Add or update an entry into the Mappings Database
*/
int
SDL_GameControllerAddMapping(const char *mappingString)
int SDL_GameControllerAddMapping(const char *mappingString)
{
return SDL_PrivateGameControllerAddMapping(mappingString, SDL_CONTROLLER_MAPPING_PRIORITY_API);
}
@ -1649,8 +1630,7 @@ SDL_GameControllerAddMapping(const char *mappingString)
/*
* Get the number of mappings installed
*/
int
SDL_GameControllerNumMappings(void)
int SDL_GameControllerNumMappings(void)
{
int num_mappings = 0;
ControllerMapping_t *mapping;
@ -1667,8 +1647,7 @@ SDL_GameControllerNumMappings(void)
/*
* Create a mapping string for a mapping
*/
static char *
CreateMappingString(ControllerMapping_t *mapping, SDL_JoystickGUID guid)
static char *CreateMappingString(ControllerMapping_t *mapping, SDL_JoystickGUID guid)
{
char *pMappingString, *pPlatformString;
char pchGUID[33];
@ -1762,8 +1741,7 @@ SDL_GameControllerMapping(SDL_GameController *gamecontroller)
return CreateMappingString(gamecontroller->mapping, gamecontroller->joystick->guid);
}
static void
SDL_GameControllerLoadHints()
static void SDL_GameControllerLoadHints()
{
const char *hint = SDL_GetHint(SDL_HINT_GAMECONTROLLERCONFIG);
if (hint && hint[0]) {
@ -1793,7 +1771,7 @@ SDL_GameControllerLoadHints()
}
/*
* Fill the given buffer with the expected controller mapping filepath.
* Fill the given buffer with the expected controller mapping filepath.
* Usually this will just be SDL_HINT_GAMECONTROLLERCONFIG_FILE, but for
* Android, we want to get the internal storage path.
*/
@ -1814,8 +1792,7 @@ static SDL_bool SDL_GetControllerMappingFilePath(char *path, size_t size)
/*
* Initialize the game controller system, mostly load our DB of controller config mappings
*/
int
SDL_GameControllerInitMappings(void)
int SDL_GameControllerInitMappings(void)
{
char szControllerMapPath[1024];
int i = 0;
@ -1829,7 +1806,7 @@ SDL_GameControllerInitMappings(void)
}
if (SDL_GetControllerMappingFilePath(szControllerMapPath, sizeof(szControllerMapPath))) {
SDL_GameControllerAddMappingsFromFile(szControllerMapPath);
SDL_GameControllerAddMappingsFromFile(szControllerMapPath);
}
/* load in any user supplied config */
@ -1843,8 +1820,7 @@ SDL_GameControllerInitMappings(void)
return 0;
}
int
SDL_GameControllerInit(void)
int SDL_GameControllerInit(void)
{
int i;
@ -1864,7 +1840,6 @@ SDL_GameControllerInit(void)
return 0;
}
/*
* Get the implementation dependent name of a controller
*/
@ -1882,7 +1857,6 @@ SDL_GameControllerNameForIndex(int device_index)
return NULL;
}
/*
* Get the implementation dependent path of a controller
*/
@ -1896,7 +1870,6 @@ SDL_GameControllerPathForIndex(int device_index)
return NULL;
}
/**
* Get the type of a game controller.
*/
@ -1906,7 +1879,6 @@ SDL_GameControllerTypeForIndex(int joystick_index)
return SDL_GetJoystickGameControllerTypeFromGUID(SDL_JoystickGetDeviceGUID(joystick_index), SDL_JoystickNameForIndex(joystick_index));
}
/**
* Get the mapping of a game controller.
* This can be called before any controllers are opened.
@ -1940,7 +1912,6 @@ SDL_GameControllerMappingForDeviceIndex(int joystick_index)
return pMappingString;
}
/*
* Return 1 if the joystick with this name and GUID is a supported controller
*/
@ -2081,16 +2052,16 @@ SDL_GameControllerOpen(int device_index)
instance_id = SDL_JoystickGetDeviceInstanceID(device_index);
while (gamecontrollerlist) {
if (instance_id == gamecontrollerlist->joystick->instance_id) {
gamecontroller = gamecontrollerlist;
++gamecontroller->ref_count;
SDL_UnlockJoysticks();
return gamecontroller;
gamecontroller = gamecontrollerlist;
++gamecontroller->ref_count;
SDL_UnlockJoysticks();
return gamecontroller;
}
gamecontrollerlist = gamecontrollerlist->next;
}
/* Find a controller mapping */
pSupportedController = SDL_PrivateGetControllerMapping(device_index);
pSupportedController = SDL_PrivateGetControllerMapping(device_index);
if (pSupportedController == NULL) {
SDL_SetError("Couldn't find mapping for device (%d)", device_index);
SDL_UnlockJoysticks();
@ -2098,7 +2069,7 @@ SDL_GameControllerOpen(int device_index)
}
/* Create and initialize the controller */
gamecontroller = (SDL_GameController *) SDL_calloc(1, sizeof(*gamecontroller));
gamecontroller = (SDL_GameController *)SDL_calloc(1, sizeof(*gamecontroller));
if (gamecontroller == NULL) {
SDL_OutOfMemory();
SDL_UnlockJoysticks();
@ -2151,8 +2122,7 @@ SDL_GameControllerOpen(int device_index)
/*
* Manually pump for controller updates.
*/
void
SDL_GameControllerUpdate(void)
void SDL_GameControllerUpdate(void)
{
/* Just for API completeness; the joystick API does all the work. */
SDL_JoystickUpdate();
@ -2247,8 +2217,7 @@ SDL_GameControllerHasButton(SDL_GameController *gamecontroller, SDL_GameControll
/*
* Get the current state of a button on a controller
*/
Uint8
SDL_GameControllerGetButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button)
Uint8 SDL_GameControllerGetButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button)
{
int i;
@ -2287,8 +2256,7 @@ SDL_GameControllerGetButton(SDL_GameController *gamecontroller, SDL_GameControll
/**
* Get the number of touchpads on a game controller.
*/
int
SDL_GameControllerGetNumTouchpads(SDL_GameController *gamecontroller)
int SDL_GameControllerGetNumTouchpads(SDL_GameController *gamecontroller)
{
SDL_Joystick *joystick = SDL_GameControllerGetJoystick(gamecontroller);
@ -2314,12 +2282,11 @@ int SDL_GameControllerGetNumTouchpadFingers(SDL_GameController *gamecontroller,
/**
* Get the current state of a finger on a touchpad on a game controller.
*/
int
SDL_GameControllerGetTouchpadFinger(SDL_GameController *gamecontroller, int touchpad, int finger, Uint8 *state, float *x, float *y, float *pressure)
int SDL_GameControllerGetTouchpadFinger(SDL_GameController *gamecontroller, int touchpad, int finger, Uint8 *state, float *x, float *y, float *pressure)
{
SDL_Joystick *joystick = SDL_GameControllerGetJoystick(gamecontroller);
if (joystick ) {
if (joystick) {
if (touchpad >= 0 && touchpad < joystick->ntouchpads) {
SDL_JoystickTouchpadInfo *touchpad_info = &joystick->touchpads[touchpad];
if (finger >= 0 && finger < touchpad_info->nfingers) {
@ -2432,8 +2399,7 @@ SDL_bool SDL_GameControllerIsSensorEnabled(SDL_GameController *gamecontroller, S
/*
* Get the data rate of a game controller sensor.
*/
float
SDL_GameControllerGetSensorDataRate(SDL_GameController *gamecontroller, SDL_SensorType type)
float SDL_GameControllerGetSensorDataRate(SDL_GameController *gamecontroller, SDL_SensorType type)
{
SDL_Joystick *joystick = SDL_GameControllerGetJoystick(gamecontroller);
int i;
@ -2455,8 +2421,7 @@ SDL_GameControllerGetSensorDataRate(SDL_GameController *gamecontroller, SDL_Sens
/*
* Get the current state of a game controller sensor.
*/
int
SDL_GameControllerGetSensorData(SDL_GameController *gamecontroller, SDL_SensorType type, float *data, int num_values)
int SDL_GameControllerGetSensorData(SDL_GameController *gamecontroller, SDL_SensorType type, float *data, int num_values)
{
return SDL_GameControllerGetSensorDataWithTimestamp(gamecontroller, type, NULL, data, num_values);
}
@ -2464,8 +2429,7 @@ SDL_GameControllerGetSensorData(SDL_GameController *gamecontroller, SDL_SensorTy
/*
* Get the current state of a game controller sensor.
*/
int
SDL_GameControllerGetSensorDataWithTimestamp(SDL_GameController *gamecontroller, SDL_SensorType type, Uint64 *timestamp, float *data, int num_values)
int SDL_GameControllerGetSensorDataWithTimestamp(SDL_GameController *gamecontroller, SDL_SensorType type, Uint64 *timestamp, float *data, int num_values)
{
SDL_Joystick *joystick = SDL_GameControllerGetJoystick(gamecontroller);
int i;
@ -2479,7 +2443,7 @@ SDL_GameControllerGetSensorDataWithTimestamp(SDL_GameController *gamecontroller,
if (sensor->type == type) {
num_values = SDL_min(num_values, SDL_arraysize(sensor->data));
SDL_memcpy(data, sensor->data, num_values*sizeof(*data));
SDL_memcpy(data, sensor->data, num_values * sizeof(*data));
if (timestamp) {
*timestamp = sensor->timestamp_us;
}
@ -2523,8 +2487,7 @@ SDL_GameControllerGetType(SDL_GameController *gamecontroller)
return SDL_GetJoystickGameControllerTypeFromGUID(SDL_JoystickGetGUID(joystick), SDL_JoystickName(joystick));
}
int
SDL_GameControllerGetPlayerIndex(SDL_GameController *gamecontroller)
int SDL_GameControllerGetPlayerIndex(SDL_GameController *gamecontroller)
{
SDL_Joystick *joystick = SDL_GameControllerGetJoystick(gamecontroller);
@ -2537,8 +2500,7 @@ SDL_GameControllerGetPlayerIndex(SDL_GameController *gamecontroller)
/**
* Set the player index of an opened game controller
*/
void
SDL_GameControllerSetPlayerIndex(SDL_GameController *gamecontroller, int player_index)
void SDL_GameControllerSetPlayerIndex(SDL_GameController *gamecontroller, int player_index)
{
SDL_Joystick *joystick = SDL_GameControllerGetJoystick(gamecontroller);
@ -2626,7 +2588,6 @@ SDL_GameControllerGetJoystick(SDL_GameController *gamecontroller)
return gamecontroller->joystick;
}
/*
* Return the SDL_GameController associated with an instance id.
*/
@ -2648,7 +2609,6 @@ SDL_GameControllerFromInstanceID(SDL_JoystickID joyid)
return NULL;
}
/**
* Return the SDL_GameController associated with a player index.
*/
@ -2661,7 +2621,6 @@ SDL_GameController *SDL_GameControllerFromPlayerIndex(int player_index)
return NULL;
}
/*
* Get the SDL joystick layer binding for this controller axis mapping
*/
@ -2696,7 +2655,6 @@ SDL_GameControllerButtonBind SDL_GameControllerGetBindForAxis(SDL_GameController
return bind;
}
/*
* Get the SDL joystick layer binding for this controller button mapping
*/
@ -2730,9 +2688,7 @@ SDL_GameControllerButtonBind SDL_GameControllerGetBindForButton(SDL_GameControll
return bind;
}
int
SDL_GameControllerRumble(SDL_GameController *gamecontroller, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms)
int SDL_GameControllerRumble(SDL_GameController *gamecontroller, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms)
{
SDL_Joystick *joystick = SDL_GameControllerGetJoystick(gamecontroller);
@ -2742,8 +2698,7 @@ SDL_GameControllerRumble(SDL_GameController *gamecontroller, Uint16 low_frequenc
return SDL_JoystickRumble(joystick, low_frequency_rumble, high_frequency_rumble, duration_ms);
}
int
SDL_GameControllerRumbleTriggers(SDL_GameController *gamecontroller, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms)
int SDL_GameControllerRumbleTriggers(SDL_GameController *gamecontroller, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms)
{
SDL_Joystick *joystick = SDL_GameControllerGetJoystick(gamecontroller);
@ -2786,8 +2741,7 @@ SDL_GameControllerHasRumbleTriggers(SDL_GameController *gamecontroller)
return SDL_JoystickHasRumbleTriggers(joystick);
}
int
SDL_GameControllerSetLED(SDL_GameController *gamecontroller, Uint8 red, Uint8 green, Uint8 blue)
int SDL_GameControllerSetLED(SDL_GameController *gamecontroller, Uint8 red, Uint8 green, Uint8 blue)
{
SDL_Joystick *joystick = SDL_GameControllerGetJoystick(gamecontroller);
@ -2797,8 +2751,7 @@ SDL_GameControllerSetLED(SDL_GameController *gamecontroller, Uint8 red, Uint8 gr
return SDL_JoystickSetLED(joystick, red, green, blue);
}
int
SDL_GameControllerSendEffect(SDL_GameController *gamecontroller, const void *data, int size)
int SDL_GameControllerSendEffect(SDL_GameController *gamecontroller, const void *data, int size)
{
SDL_Joystick *joystick = SDL_GameControllerGetJoystick(gamecontroller);
@ -2808,8 +2761,7 @@ SDL_GameControllerSendEffect(SDL_GameController *gamecontroller, const void *dat
return SDL_JoystickSendEffect(joystick, data, size);
}
void
SDL_GameControllerClose(SDL_GameController *gamecontroller)
void SDL_GameControllerClose(SDL_GameController *gamecontroller)
{
SDL_GameController *gamecontrollerlist, *gamecontrollerlistprev;
@ -2852,12 +2804,10 @@ SDL_GameControllerClose(SDL_GameController *gamecontroller)
SDL_UnlockJoysticks();
}
/*
* Quit the controller subsystem
*/
void
SDL_GameControllerQuit(void)
void SDL_GameControllerQuit(void)
{
SDL_LockJoysticks();
while (SDL_gamecontrollers) {
@ -2867,8 +2817,7 @@ SDL_GameControllerQuit(void)
SDL_UnlockJoysticks();
}
void
SDL_GameControllerQuitMappings(void)
void SDL_GameControllerQuitMappings(void)
{
ControllerMapping_t *pControllerMap;
@ -2900,8 +2849,7 @@ SDL_GameControllerQuitMappings(void)
/*
* Event filter to transform joystick events into appropriate game controller ones
*/
static int
SDL_PrivateGameControllerAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis, Sint16 value)
static int SDL_PrivateGameControllerAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis, Sint16 value)
{
int posted;
@ -2922,12 +2870,10 @@ SDL_PrivateGameControllerAxis(SDL_GameController *gamecontroller, SDL_GameContro
return posted;
}
/*
* Event filter to transform joystick events into appropriate game controller ones
*/
static int
SDL_PrivateGameControllerButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button, Uint8 state)
static int SDL_PrivateGameControllerButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button, Uint8 state)
{
int posted;
#if !SDL_EVENTS_DISABLED
@ -2962,7 +2908,7 @@ SDL_PrivateGameControllerButton(SDL_GameController *gamecontroller, SDL_GameCont
return 0;
}
} else {
if (!SDL_TICKS_PASSED(now, gamecontroller->guide_button_down+SDL_MINIMUM_GUIDE_BUTTON_DELAY_MS)) {
if (!SDL_TICKS_PASSED(now, gamecontroller->guide_button_down + SDL_MINIMUM_GUIDE_BUTTON_DELAY_MS)) {
gamecontroller->joystick->delayed_guide_button = SDL_TRUE;
return 0;
}
@ -2986,16 +2932,22 @@ SDL_PrivateGameControllerButton(SDL_GameController *gamecontroller, SDL_GameCont
/*
* Turn off controller events
*/
int
SDL_GameControllerEventState(int state)
int SDL_GameControllerEventState(int state)
{
#if SDL_EVENTS_DISABLED
return SDL_IGNORE;
#else
const Uint32 event_list[] = {
SDL_CONTROLLERAXISMOTION, SDL_CONTROLLERBUTTONDOWN, SDL_CONTROLLERBUTTONUP,
SDL_CONTROLLERDEVICEADDED, SDL_CONTROLLERDEVICEREMOVED, SDL_CONTROLLERDEVICEREMAPPED,
SDL_CONTROLLERTOUCHPADDOWN, SDL_CONTROLLERTOUCHPADMOTION, SDL_CONTROLLERTOUCHPADUP, SDL_CONTROLLERSENSORUPDATE,
SDL_CONTROLLERAXISMOTION,
SDL_CONTROLLERBUTTONDOWN,
SDL_CONTROLLERBUTTONUP,
SDL_CONTROLLERDEVICEADDED,
SDL_CONTROLLERDEVICEREMOVED,
SDL_CONTROLLERDEVICEREMAPPED,
SDL_CONTROLLERTOUCHPADDOWN,
SDL_CONTROLLERTOUCHPADMOTION,
SDL_CONTROLLERTOUCHPADUP,
SDL_CONTROLLERSENSORUPDATE,
};
unsigned int i;
@ -3019,8 +2971,7 @@ SDL_GameControllerEventState(int state)
#endif /* SDL_EVENTS_DISABLED */
}
void
SDL_GameControllerHandleDelayedGuideButton(SDL_Joystick *joystick)
void SDL_GameControllerHandleDelayedGuideButton(SDL_Joystick *joystick)
{
SDL_GameController *controllerlist = SDL_gamecontrollers;
while (controllerlist) {
@ -3036,7 +2987,7 @@ const char *
SDL_GameControllerGetAppleSFSymbolsNameForButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button)
{
#if defined(SDL_JOYSTICK_MFI)
const char *IOS_GameControllerGetAppleSFSymbolsNameForButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button);
const char *IOS_GameControllerGetAppleSFSymbolsNameForButton(SDL_GameController * gamecontroller, SDL_GameControllerButton button);
CHECK_GAMECONTROLLER_MAGIC(gamecontroller, NULL);
@ -3050,7 +3001,7 @@ const char *
SDL_GameControllerGetAppleSFSymbolsNameForAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis)
{
#if defined(SDL_JOYSTICK_MFI)
const char *IOS_GameControllerGetAppleSFSymbolsNameForAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis);
const char *IOS_GameControllerGetAppleSFSymbolsNameForAxis(SDL_GameController * gamecontroller, SDL_GameControllerAxis axis);
CHECK_GAMECONTROLLER_MAGIC(gamecontroller, NULL);