SDL 2.0
SDL_gamecontroller.h File Reference
#include "SDL_stdinc.h"
#include "SDL_error.h"
#include "SDL_rwops.h"
#include "SDL_sensor.h"
#include "SDL_joystick.h"
#include "begin_code.h"
#include "close_code.h"
+ Include dependency graph for SDL_gamecontroller.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  SDL_GameControllerButtonBind
 

Macros

#define SDL_GameControllerAddMappingsFromFile(file)   SDL_GameControllerAddMappingsFromRW(SDL_RWFromFile(file, "rb"), 1)
 

Typedefs

typedef struct _SDL_GameController SDL_GameController
 

Enumerations

enum  SDL_GameControllerType {
  SDL_CONTROLLER_TYPE_UNKNOWN = 0 ,
  SDL_CONTROLLER_TYPE_XBOX360 ,
  SDL_CONTROLLER_TYPE_XBOXONE ,
  SDL_CONTROLLER_TYPE_PS3 ,
  SDL_CONTROLLER_TYPE_PS4 ,
  SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO ,
  SDL_CONTROLLER_TYPE_VIRTUAL ,
  SDL_CONTROLLER_TYPE_PS5 ,
  SDL_CONTROLLER_TYPE_AMAZON_LUNA ,
  SDL_CONTROLLER_TYPE_GOOGLE_STADIA ,
  SDL_CONTROLLER_TYPE_NVIDIA_SHIELD ,
  SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT ,
  SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT ,
  SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR ,
  SDL_CONTROLLER_TYPE_MAX
}
 
enum  SDL_GameControllerBindType {
  SDL_CONTROLLER_BINDTYPE_NONE = 0 ,
  SDL_CONTROLLER_BINDTYPE_BUTTON ,
  SDL_CONTROLLER_BINDTYPE_AXIS ,
  SDL_CONTROLLER_BINDTYPE_HAT
}
 
enum  SDL_GameControllerAxis {
  SDL_CONTROLLER_AXIS_INVALID = -1 ,
  SDL_CONTROLLER_AXIS_LEFTX ,
  SDL_CONTROLLER_AXIS_LEFTY ,
  SDL_CONTROLLER_AXIS_RIGHTX ,
  SDL_CONTROLLER_AXIS_RIGHTY ,
  SDL_CONTROLLER_AXIS_TRIGGERLEFT ,
  SDL_CONTROLLER_AXIS_TRIGGERRIGHT ,
  SDL_CONTROLLER_AXIS_MAX
}
 
enum  SDL_GameControllerButton {
  SDL_CONTROLLER_BUTTON_INVALID = -1 ,
  SDL_CONTROLLER_BUTTON_A ,
  SDL_CONTROLLER_BUTTON_B ,
  SDL_CONTROLLER_BUTTON_X ,
  SDL_CONTROLLER_BUTTON_Y ,
  SDL_CONTROLLER_BUTTON_BACK ,
  SDL_CONTROLLER_BUTTON_GUIDE ,
  SDL_CONTROLLER_BUTTON_START ,
  SDL_CONTROLLER_BUTTON_LEFTSTICK ,
  SDL_CONTROLLER_BUTTON_RIGHTSTICK ,
  SDL_CONTROLLER_BUTTON_LEFTSHOULDER ,
  SDL_CONTROLLER_BUTTON_RIGHTSHOULDER ,
  SDL_CONTROLLER_BUTTON_DPAD_UP ,
  SDL_CONTROLLER_BUTTON_DPAD_DOWN ,
  SDL_CONTROLLER_BUTTON_DPAD_LEFT ,
  SDL_CONTROLLER_BUTTON_DPAD_RIGHT ,
  SDL_CONTROLLER_BUTTON_MISC1 ,
  SDL_CONTROLLER_BUTTON_PADDLE1 ,
  SDL_CONTROLLER_BUTTON_PADDLE2 ,
  SDL_CONTROLLER_BUTTON_PADDLE3 ,
  SDL_CONTROLLER_BUTTON_PADDLE4 ,
  SDL_CONTROLLER_BUTTON_TOUCHPAD ,
  SDL_CONTROLLER_BUTTON_MAX
}
 

Functions

int SDL_GameControllerAddMappingsFromRW (SDL_RWops *rw, int freerw)
 
int SDL_GameControllerAddMapping (const char *mappingString)
 
int SDL_GameControllerNumMappings (void)
 
char * SDL_GameControllerMappingForIndex (int mapping_index)
 
char * SDL_GameControllerMappingForGUID (SDL_JoystickGUID guid)
 
char * SDL_GameControllerMapping (SDL_GameController *gamecontroller)
 
SDL_bool SDL_IsGameController (int joystick_index)
 
const char * SDL_GameControllerNameForIndex (int joystick_index)
 
const char * SDL_GameControllerPathForIndex (int joystick_index)
 
SDL_GameControllerType SDL_GameControllerTypeForIndex (int joystick_index)
 
char * SDL_GameControllerMappingForDeviceIndex (int joystick_index)
 
SDL_GameControllerSDL_GameControllerOpen (int joystick_index)
 
SDL_GameControllerSDL_GameControllerFromInstanceID (SDL_JoystickID joyid)
 
SDL_GameControllerSDL_GameControllerFromPlayerIndex (int player_index)
 
const char * SDL_GameControllerName (SDL_GameController *gamecontroller)
 
const char * SDL_GameControllerPath (SDL_GameController *gamecontroller)
 
SDL_GameControllerType SDL_GameControllerGetType (SDL_GameController *gamecontroller)
 
int SDL_GameControllerGetPlayerIndex (SDL_GameController *gamecontroller)
 
void SDL_GameControllerSetPlayerIndex (SDL_GameController *gamecontroller, int player_index)
 
Uint16 SDL_GameControllerGetVendor (SDL_GameController *gamecontroller)
 
Uint16 SDL_GameControllerGetProduct (SDL_GameController *gamecontroller)
 
Uint16 SDL_GameControllerGetProductVersion (SDL_GameController *gamecontroller)
 
Uint16 SDL_GameControllerGetFirmwareVersion (SDL_GameController *gamecontroller)
 
const char * SDL_GameControllerGetSerial (SDL_GameController *gamecontroller)
 
Uint64 SDL_GameControllerGetSteamHandle (SDL_GameController *gamecontroller)
 
SDL_bool SDL_GameControllerGetAttached (SDL_GameController *gamecontroller)
 
SDL_JoystickSDL_GameControllerGetJoystick (SDL_GameController *gamecontroller)
 
int SDL_GameControllerEventState (int state)
 
void SDL_GameControllerUpdate (void)
 
SDL_GameControllerAxis SDL_GameControllerGetAxisFromString (const char *str)
 
const char * SDL_GameControllerGetStringForAxis (SDL_GameControllerAxis axis)
 
SDL_GameControllerButtonBind SDL_GameControllerGetBindForAxis (SDL_GameController *gamecontroller, SDL_GameControllerAxis axis)
 
SDL_bool SDL_GameControllerHasAxis (SDL_GameController *gamecontroller, SDL_GameControllerAxis axis)
 
Sint16 SDL_GameControllerGetAxis (SDL_GameController *gamecontroller, SDL_GameControllerAxis axis)
 
SDL_GameControllerButton SDL_GameControllerGetButtonFromString (const char *str)
 
const char * SDL_GameControllerGetStringForButton (SDL_GameControllerButton button)
 
SDL_GameControllerButtonBind SDL_GameControllerGetBindForButton (SDL_GameController *gamecontroller, SDL_GameControllerButton button)
 
SDL_bool SDL_GameControllerHasButton (SDL_GameController *gamecontroller, SDL_GameControllerButton button)
 
Uint8 SDL_GameControllerGetButton (SDL_GameController *gamecontroller, SDL_GameControllerButton button)
 
int SDL_GameControllerGetNumTouchpads (SDL_GameController *gamecontroller)
 
int SDL_GameControllerGetNumTouchpadFingers (SDL_GameController *gamecontroller, int touchpad)
 
int SDL_GameControllerGetTouchpadFinger (SDL_GameController *gamecontroller, int touchpad, int finger, Uint8 *state, float *x, float *y, float *pressure)
 
SDL_bool SDL_GameControllerHasSensor (SDL_GameController *gamecontroller, SDL_SensorType type)
 
int SDL_GameControllerSetSensorEnabled (SDL_GameController *gamecontroller, SDL_SensorType type, SDL_bool enabled)
 
SDL_bool SDL_GameControllerIsSensorEnabled (SDL_GameController *gamecontroller, SDL_SensorType type)
 
float SDL_GameControllerGetSensorDataRate (SDL_GameController *gamecontroller, SDL_SensorType type)
 
int SDL_GameControllerGetSensorData (SDL_GameController *gamecontroller, SDL_SensorType type, float *data, int num_values)
 
int SDL_GameControllerGetSensorDataWithTimestamp (SDL_GameController *gamecontroller, SDL_SensorType type, Uint64 *timestamp, float *data, int num_values)
 
int SDL_GameControllerRumble (SDL_GameController *gamecontroller, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms)
 
int SDL_GameControllerRumbleTriggers (SDL_GameController *gamecontroller, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms)
 
SDL_bool SDL_GameControllerHasLED (SDL_GameController *gamecontroller)
 
SDL_bool SDL_GameControllerHasRumble (SDL_GameController *gamecontroller)
 
SDL_bool SDL_GameControllerHasRumbleTriggers (SDL_GameController *gamecontroller)
 
int SDL_GameControllerSetLED (SDL_GameController *gamecontroller, Uint8 red, Uint8 green, Uint8 blue)
 
int SDL_GameControllerSendEffect (SDL_GameController *gamecontroller, const void *data, int size)
 
void SDL_GameControllerClose (SDL_GameController *gamecontroller)
 
const char * SDL_GameControllerGetAppleSFSymbolsNameForButton (SDL_GameController *gamecontroller, SDL_GameControllerButton button)
 
const char * SDL_GameControllerGetAppleSFSymbolsNameForAxis (SDL_GameController *gamecontroller, SDL_GameControllerAxis axis)
 

Detailed Description

Include file for SDL game controller event handling

In order to use these functions, SDL_Init() must have been called with the SDL_INIT_GAMECONTROLLER flag. This causes SDL to scan the system for game controllers, and load appropriate drivers.

If you would like to receive controller updates while the application is in the background, you should set the following hint before calling SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS

Definition in file SDL_gamecontroller.h.

Macro Definition Documentation

◆ SDL_GameControllerAddMappingsFromFile

#define SDL_GameControllerAddMappingsFromFile (   file)    SDL_GameControllerAddMappingsFromRW(SDL_RWFromFile(file, "rb"), 1)

Load a set of mappings from a file, filtered by the current SDL_GetPlatform()

Convenience macro.

Definition at line 173 of file SDL_gamecontroller.h.

Typedef Documentation

◆ SDL_GameController

typedef struct _SDL_GameController SDL_GameController

Definition at line 59 of file SDL_gamecontroller.h.

Enumeration Type Documentation

◆ SDL_GameControllerAxis

The list of axes available from a controller

Thumbstick axis values range from SDL_JOYSTICK_AXIS_MIN to SDL_JOYSTICK_AXIS_MAX, and are centered within ~8000 of zero, though advanced UI will allow users to set or autodetect the dead zone, which varies between controllers.

Trigger axis values range from 0 (released) to SDL_JOYSTICK_AXIS_MAX (fully pressed) when reported by SDL_GameControllerGetAxis(). Note that this is not the same range that will be reported by the lower-level SDL_GetJoystickAxis().

Enumerator
SDL_CONTROLLER_AXIS_INVALID 
SDL_CONTROLLER_AXIS_LEFTX 
SDL_CONTROLLER_AXIS_LEFTY 
SDL_CONTROLLER_AXIS_RIGHTX 
SDL_CONTROLLER_AXIS_RIGHTY 
SDL_CONTROLLER_AXIS_TRIGGERLEFT 
SDL_CONTROLLER_AXIS_TRIGGERRIGHT 
SDL_CONTROLLER_AXIS_MAX 

Definition at line 620 of file SDL_gamecontroller.h.

◆ SDL_GameControllerBindType

Enumerator
SDL_CONTROLLER_BINDTYPE_NONE 
SDL_CONTROLLER_BINDTYPE_BUTTON 
SDL_CONTROLLER_BINDTYPE_AXIS 
SDL_CONTROLLER_BINDTYPE_HAT 

Definition at line 80 of file SDL_gamecontroller.h.

◆ SDL_GameControllerButton

The list of buttons available from a controller

Enumerator
SDL_CONTROLLER_BUTTON_INVALID 
SDL_CONTROLLER_BUTTON_A 
SDL_CONTROLLER_BUTTON_B 
SDL_CONTROLLER_BUTTON_X 
SDL_CONTROLLER_BUTTON_Y 
SDL_CONTROLLER_BUTTON_BACK 
SDL_CONTROLLER_BUTTON_GUIDE 
SDL_CONTROLLER_BUTTON_START 
SDL_CONTROLLER_BUTTON_LEFTSTICK 
SDL_CONTROLLER_BUTTON_RIGHTSTICK 
SDL_CONTROLLER_BUTTON_LEFTSHOULDER 
SDL_CONTROLLER_BUTTON_RIGHTSHOULDER 
SDL_CONTROLLER_BUTTON_DPAD_UP 
SDL_CONTROLLER_BUTTON_DPAD_DOWN 
SDL_CONTROLLER_BUTTON_DPAD_LEFT 
SDL_CONTROLLER_BUTTON_DPAD_RIGHT 
SDL_CONTROLLER_BUTTON_MISC1 
SDL_CONTROLLER_BUTTON_PADDLE1 
SDL_CONTROLLER_BUTTON_PADDLE2 
SDL_CONTROLLER_BUTTON_PADDLE3 
SDL_CONTROLLER_BUTTON_PADDLE4 
SDL_CONTROLLER_BUTTON_TOUCHPAD 
SDL_CONTROLLER_BUTTON_MAX 

Definition at line 730 of file SDL_gamecontroller.h.

731{
748 SDL_CONTROLLER_BUTTON_MISC1, /* Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button */
749 SDL_CONTROLLER_BUTTON_PADDLE1, /* Xbox Elite paddle P1 (upper left, facing the back) */
750 SDL_CONTROLLER_BUTTON_PADDLE2, /* Xbox Elite paddle P3 (upper right, facing the back) */
751 SDL_CONTROLLER_BUTTON_PADDLE3, /* Xbox Elite paddle P2 (lower left, facing the back) */
752 SDL_CONTROLLER_BUTTON_PADDLE4, /* Xbox Elite paddle P4 (lower right, facing the back) */
753 SDL_CONTROLLER_BUTTON_TOUCHPAD, /* PS4/PS5 touchpad button */
SDL_GameControllerButton
@ SDL_CONTROLLER_BUTTON_B
@ SDL_CONTROLLER_BUTTON_BACK
@ SDL_CONTROLLER_BUTTON_LEFTSTICK
@ SDL_CONTROLLER_BUTTON_START
@ SDL_CONTROLLER_BUTTON_PADDLE2
@ SDL_CONTROLLER_BUTTON_PADDLE1
@ SDL_CONTROLLER_BUTTON_DPAD_LEFT
@ SDL_CONTROLLER_BUTTON_RIGHTSHOULDER
@ SDL_CONTROLLER_BUTTON_INVALID
@ SDL_CONTROLLER_BUTTON_DPAD_DOWN
@ SDL_CONTROLLER_BUTTON_TOUCHPAD
@ SDL_CONTROLLER_BUTTON_DPAD_UP
@ SDL_CONTROLLER_BUTTON_MAX
@ SDL_CONTROLLER_BUTTON_LEFTSHOULDER
@ SDL_CONTROLLER_BUTTON_GUIDE
@ SDL_CONTROLLER_BUTTON_DPAD_RIGHT
@ SDL_CONTROLLER_BUTTON_MISC1
@ SDL_CONTROLLER_BUTTON_X
@ SDL_CONTROLLER_BUTTON_RIGHTSTICK
@ SDL_CONTROLLER_BUTTON_PADDLE3
@ SDL_CONTROLLER_BUTTON_Y
@ SDL_CONTROLLER_BUTTON_A
@ SDL_CONTROLLER_BUTTON_PADDLE4

◆ SDL_GameControllerType

Enumerator
SDL_CONTROLLER_TYPE_UNKNOWN 
SDL_CONTROLLER_TYPE_XBOX360 
SDL_CONTROLLER_TYPE_XBOXONE 
SDL_CONTROLLER_TYPE_PS3 
SDL_CONTROLLER_TYPE_PS4 
SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO 
SDL_CONTROLLER_TYPE_VIRTUAL 
SDL_CONTROLLER_TYPE_PS5 
SDL_CONTROLLER_TYPE_AMAZON_LUNA 
SDL_CONTROLLER_TYPE_GOOGLE_STADIA 
SDL_CONTROLLER_TYPE_NVIDIA_SHIELD 
SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT 
SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT 
SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR 
SDL_CONTROLLER_TYPE_MAX 

Definition at line 61 of file SDL_gamecontroller.h.

62{
SDL_GameControllerType
@ SDL_CONTROLLER_TYPE_VIRTUAL
@ SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT
@ SDL_CONTROLLER_TYPE_XBOX360
@ SDL_CONTROLLER_TYPE_PS4
@ SDL_CONTROLLER_TYPE_NVIDIA_SHIELD
@ SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO
@ SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR
@ SDL_CONTROLLER_TYPE_GOOGLE_STADIA
@ SDL_CONTROLLER_TYPE_AMAZON_LUNA
@ SDL_CONTROLLER_TYPE_PS3
@ SDL_CONTROLLER_TYPE_PS5
@ SDL_CONTROLLER_TYPE_XBOXONE
@ SDL_CONTROLLER_TYPE_UNKNOWN
@ SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT
@ SDL_CONTROLLER_TYPE_MAX

Function Documentation

◆ SDL_GameControllerAddMapping()

int SDL_GameControllerAddMapping ( const char *  mappingString)
extern

Add support for controllers that SDL is unaware of or to cause an existing controller to have a different binding.

The mapping string has the format "GUID,name,mapping", where GUID is the string value from SDL_JoystickGetGUIDString(), name is the human readable string for the device and mappings are controller mappings to joystick ones. Under Windows there is a reserved GUID of "xinput" that covers all XInput devices. The mapping format for joystick is: {| |bX |a joystick button, index X |- |hX.Y |hat X with value Y |- |aX |axis X of the joystick |} Buttons can be used as a controller axes and vice versa.

This string shows an example of a valid mapping for a controller:

"341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7"
Parameters
mappingStringthe mapping string
Returns
1 if a new mapping is added, 0 if an existing mapping is updated, -1 on error; call SDL_GetError() for more information.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerMapping
SDL_GameControllerMappingForGUID

◆ SDL_GameControllerAddMappingsFromRW()

int SDL_GameControllerAddMappingsFromRW ( SDL_RWops rw,
int  freerw 
)
extern

To count the number of game controllers in the system for the following:

int nJoysticks = SDL_NumJoysticks();
int nGameControllers = 0;
for (int i = 0; i < nJoysticks; i++) {
nGameControllers++;
}
}
SDL_bool SDL_IsGameController(int joystick_index)
int SDL_NumJoysticks(void)

Using the SDL_HINT_GAMECONTROLLERCONFIG hint or the SDL_GameControllerAddMapping() you can add support for controllers SDL is unaware of or cause an existing controller to have a different binding. The format is: guid,name,mappings

Where GUID is the string value from SDL_JoystickGetGUIDString(), name is the human readable string for the device and mappings are controller mappings to joystick ones. Under Windows there is a reserved GUID of "xinput" that covers any XInput devices. The mapping format for joystick is: bX - a joystick button, index X hX.Y - hat X with value Y aX - axis X of the joystick Buttons can be used as a controller axis and vice versa.

This string shows an example of a valid mapping for a controller

"03000000341a00003608000000000000,PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7",

Load a set of Game Controller mappings from a seekable SDL data stream.

You can call this function several times, if needed, to load different database files.

If a new mapping is loaded for an already known controller GUID, the later version will overwrite the one currently loaded.

Mappings not belonging to the current platform or with no platform field specified will be ignored (i.e. mappings for Linux will be ignored in Windows, etc).

This function will load the text database entirely in memory before processing it, so take this into consideration if you are in a memory constrained environment.

Parameters
rwthe data stream for the mappings to be added
freerwnon-zero to close the stream after being read
Returns
the number of mappings added or -1 on error; call SDL_GetError() for more information.
Since
This function is available since SDL 2.0.2.
See also
SDL_GameControllerAddMapping
SDL_GameControllerAddMappingsFromFile
SDL_GameControllerMappingForGUID

◆ SDL_GameControllerClose()

void SDL_GameControllerClose ( SDL_GameController gamecontroller)
extern

Close a game controller previously opened with SDL_GameControllerOpen().

Parameters
gamecontrollera game controller identifier previously returned by SDL_GameControllerOpen()
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerOpen

◆ SDL_GameControllerEventState()

int SDL_GameControllerEventState ( int  state)
extern

Query or change current state of Game Controller events.

If controller events are disabled, you must call SDL_GameControllerUpdate() yourself and check the state of the controller when you want controller information.

Any number can be passed to SDL_GameControllerEventState(), but only -1, 0, and 1 will have any effect. Other numbers will just be returned.

Parameters
statecan be one of SDL_QUERY, SDL_IGNORE, or SDL_ENABLE
Returns
the same value passed to the function, with exception to -1 (SDL_QUERY), which will return the current state.
Since
This function is available since SDL 2.0.0.
See also
SDL_JoystickEventState

◆ SDL_GameControllerFromInstanceID()

SDL_GameController * SDL_GameControllerFromInstanceID ( SDL_JoystickID  joyid)
extern

Get the SDL_GameController associated with an instance id.

Parameters
joyidthe instance id to get the SDL_GameController for
Returns
an SDL_GameController on success or NULL on failure; call SDL_GetError() for more information.
Since
This function is available since SDL 2.0.4.

◆ SDL_GameControllerFromPlayerIndex()

SDL_GameController * SDL_GameControllerFromPlayerIndex ( int  player_index)
extern

Get the SDL_GameController associated with a player index.

Please note that the player index is not the device index, nor is it the instance id!

Parameters
player_indexthe player index, which is not the device index or the instance id!
Returns
the SDL_GameController associated with a player index.
Since
This function is available since SDL 2.0.12.
See also
SDL_GameControllerGetPlayerIndex
SDL_GameControllerSetPlayerIndex

◆ SDL_GameControllerGetAppleSFSymbolsNameForAxis()

const char * SDL_GameControllerGetAppleSFSymbolsNameForAxis ( SDL_GameController gamecontroller,
SDL_GameControllerAxis  axis 
)
extern

Return the sfSymbolsName for a given axis on a game controller on Apple platforms.

Parameters
gamecontrollerthe controller to query
axisan axis on the game controller
Returns
the sfSymbolsName or NULL if the name can't be found
Since
This function is available since SDL 2.0.18.
See also
SDL_GameControllerGetAppleSFSymbolsNameForButton

◆ SDL_GameControllerGetAppleSFSymbolsNameForButton()

const char * SDL_GameControllerGetAppleSFSymbolsNameForButton ( SDL_GameController gamecontroller,
SDL_GameControllerButton  button 
)
extern

Return the sfSymbolsName for a given button on a game controller on Apple platforms.

Parameters
gamecontrollerthe controller to query
buttona button on the game controller
Returns
the sfSymbolsName or NULL if the name can't be found
Since
This function is available since SDL 2.0.18.
See also
SDL_GameControllerGetAppleSFSymbolsNameForAxis

◆ SDL_GameControllerGetAttached()

SDL_bool SDL_GameControllerGetAttached ( SDL_GameController gamecontroller)
extern

Check if a controller has been opened and is currently connected.

Parameters
gamecontrollera game controller identifier previously returned by SDL_GameControllerOpen()
Returns
SDL_TRUE if the controller has been opened and is currently connected, or SDL_FALSE if not.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerClose
SDL_GameControllerOpen

◆ SDL_GameControllerGetAxis()

Sint16 SDL_GameControllerGetAxis ( SDL_GameController gamecontroller,
SDL_GameControllerAxis  axis 
)
extern

Get the current state of an axis control on a game controller.

The axis indices start at index 0.

For thumbsticks, the state is a value ranging from -32768 (up/left) to 32767 (down/right).

Triggers range from 0 when released to 32767 when fully pressed, and never return a negative value. Note that this differs from the value reported by the lower-level SDL_GetJoystickAxis(), which normally uses the full range.

Parameters
gamecontrollera game controller
axisan axis index (one of the SDL_GameControllerAxis values)
Returns
axis state (including 0) on success or 0 (also) on failure; call SDL_GetError() for more information.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerGetButton

◆ SDL_GameControllerGetAxisFromString()

SDL_GameControllerAxis SDL_GameControllerGetAxisFromString ( const char *  str)
extern

Convert a string into SDL_GameControllerAxis enum.

This function is called internally to translate SDL_GameController mapping strings for the underlying joystick device into the consistent SDL_GameController mapping. You do not normally need to call this function unless you are parsing SDL_GameController mappings in your own code.

Note specially that "righttrigger" and "lefttrigger" map to SDL_CONTROLLER_AXIS_TRIGGERRIGHT and SDL_CONTROLLER_AXIS_TRIGGERLEFT, respectively.

Parameters
strstring representing a SDL_GameController axis
Returns
the SDL_GameControllerAxis enum corresponding to the input string, or SDL_CONTROLLER_AXIS_INVALID if no match was found.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerGetStringForAxis

◆ SDL_GameControllerGetBindForAxis()

SDL_GameControllerButtonBind SDL_GameControllerGetBindForAxis ( SDL_GameController gamecontroller,
SDL_GameControllerAxis  axis 
)
extern

Get the SDL joystick layer binding for a controller axis mapping.

Parameters
gamecontrollera game controller
axisan axis enum value (one of the SDL_GameControllerAxis values)
Returns
a SDL_GameControllerButtonBind describing the bind. On failure (like the given Controller axis doesn't exist on the device), its .bindType will be SDL_CONTROLLER_BINDTYPE_NONE.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerGetBindForButton

◆ SDL_GameControllerGetBindForButton()

SDL_GameControllerButtonBind SDL_GameControllerGetBindForButton ( SDL_GameController gamecontroller,
SDL_GameControllerButton  button 
)
extern

Get the SDL joystick layer binding for a controller button mapping.

Parameters
gamecontrollera game controller
buttonan button enum value (an SDL_GameControllerButton value)
Returns
a SDL_GameControllerButtonBind describing the bind. On failure (like the given Controller button doesn't exist on the device), its .bindType will be SDL_CONTROLLER_BINDTYPE_NONE.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerGetBindForAxis

◆ SDL_GameControllerGetButton()

Uint8 SDL_GameControllerGetButton ( SDL_GameController gamecontroller,
SDL_GameControllerButton  button 
)
extern

Get the current state of a button on a game controller.

Parameters
gamecontrollera game controller
buttona button index (one of the SDL_GameControllerButton values)
Returns
1 for pressed state or 0 for not pressed state or error; call SDL_GetError() for more information.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerGetAxis

◆ SDL_GameControllerGetButtonFromString()

SDL_GameControllerButton SDL_GameControllerGetButtonFromString ( const char *  str)
extern

Convert a string into an SDL_GameControllerButton enum.

This function is called internally to translate SDL_GameController mapping strings for the underlying joystick device into the consistent SDL_GameController mapping. You do not normally need to call this function unless you are parsing SDL_GameController mappings in your own code.

Parameters
strstring representing a SDL_GameController axis
Returns
the SDL_GameControllerButton enum corresponding to the input string, or SDL_CONTROLLER_AXIS_INVALID if no match was found.
Since
This function is available since SDL 2.0.0.

◆ SDL_GameControllerGetFirmwareVersion()

Uint16 SDL_GameControllerGetFirmwareVersion ( SDL_GameController gamecontroller)
extern

Get the firmware version of an opened controller, if available.

If the firmware version isn't available this function returns 0.

Parameters
gamecontrollerthe game controller object to query.
Returns
the controller firmware version, or zero if unavailable.
Since
This function is available since SDL 2.24.0.

◆ SDL_GameControllerGetJoystick()

SDL_Joystick * SDL_GameControllerGetJoystick ( SDL_GameController gamecontroller)
extern

Get the Joystick ID from a Game Controller.

This function will give you a SDL_Joystick object, which allows you to use the SDL_Joystick functions with a SDL_GameController object. This would be useful for getting a joystick's position at any given time, even if it hasn't moved (moving it would produce an event, which would have the axis' value).

The pointer returned is owned by the SDL_GameController. You should not call SDL_JoystickClose() on it, for example, since doing so will likely cause SDL to crash.

Parameters
gamecontrollerthe game controller object that you want to get a joystick from
Returns
a SDL_Joystick object; call SDL_GetError() for more information.
Since
This function is available since SDL 2.0.0.

◆ SDL_GameControllerGetNumTouchpadFingers()

int SDL_GameControllerGetNumTouchpadFingers ( SDL_GameController gamecontroller,
int  touchpad 
)
extern

Get the number of supported simultaneous fingers on a touchpad on a game controller.

Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerGetNumTouchpads()

int SDL_GameControllerGetNumTouchpads ( SDL_GameController gamecontroller)
extern

Get the number of touchpads on a game controller.

Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerGetPlayerIndex()

int SDL_GameControllerGetPlayerIndex ( SDL_GameController gamecontroller)
extern

Get the player index of an opened game controller.

For XInput controllers this returns the XInput user index.

Parameters
gamecontrollerthe game controller object to query.
Returns
the player index for controller, or -1 if it's not available.
Since
This function is available since SDL 2.0.9.

◆ SDL_GameControllerGetProduct()

Uint16 SDL_GameControllerGetProduct ( SDL_GameController gamecontroller)
extern

Get the USB product ID of an opened controller, if available.

If the product ID isn't available this function returns 0.

Parameters
gamecontrollerthe game controller object to query.
Returns
the USB product ID, or zero if unavailable.
Since
This function is available since SDL 2.0.6.

◆ SDL_GameControllerGetProductVersion()

Uint16 SDL_GameControllerGetProductVersion ( SDL_GameController gamecontroller)
extern

Get the product version of an opened controller, if available.

If the product version isn't available this function returns 0.

Parameters
gamecontrollerthe game controller object to query.
Returns
the USB product version, or zero if unavailable.
Since
This function is available since SDL 2.0.6.

◆ SDL_GameControllerGetSensorData()

int SDL_GameControllerGetSensorData ( SDL_GameController gamecontroller,
SDL_SensorType  type,
float *  data,
int  num_values 
)
extern

Get the current state of a game controller sensor.

The number of values and interpretation of the data is sensor dependent. See SDL_sensor.h for the details for each type of sensor.

Parameters
gamecontrollerThe controller to query
typeThe type of sensor to query
dataA pointer filled with the current sensor state
num_valuesThe number of values to write to data
Returns
0 or -1 if an error occurred.
Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerGetSensorDataRate()

float SDL_GameControllerGetSensorDataRate ( SDL_GameController gamecontroller,
SDL_SensorType  type 
)
extern

Get the data rate (number of events per second) of a game controller sensor.

Parameters
gamecontrollerThe controller to query
typeThe type of sensor to query
Returns
the data rate, or 0.0f if the data rate is not available.
Since
This function is available since SDL 2.0.16.

◆ SDL_GameControllerGetSensorDataWithTimestamp()

int SDL_GameControllerGetSensorDataWithTimestamp ( SDL_GameController gamecontroller,
SDL_SensorType  type,
Uint64 timestamp,
float *  data,
int  num_values 
)
extern

Get the current state of a game controller sensor with the timestamp of the last update.

The number of values and interpretation of the data is sensor dependent. See SDL_sensor.h for the details for each type of sensor.

Parameters
gamecontrollerThe controller to query
typeThe type of sensor to query
timestampA pointer filled with the timestamp in microseconds of the current sensor reading if available, or 0 if not
dataA pointer filled with the current sensor state
num_valuesThe number of values to write to data
Returns
0 or -1 if an error occurred.
Since
This function is available since SDL 2.26.0.

◆ SDL_GameControllerGetSerial()

const char * SDL_GameControllerGetSerial ( SDL_GameController gamecontroller)
extern

Get the serial number of an opened controller, if available.

Returns the serial number of the controller, or NULL if it is not available.

Parameters
gamecontrollerthe game controller object to query.
Returns
the serial number, or NULL if unavailable.
Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerGetSteamHandle()

Uint64 SDL_GameControllerGetSteamHandle ( SDL_GameController gamecontroller)
extern

Get the Steam Input handle of an opened controller, if available.

Returns an InputHandle_t for the controller that can be used with Steam Input API: https://partner.steamgames.com/doc/api/ISteamInput

Parameters
gamecontrollerthe game controller object to query.
Returns
the gamepad handle, or 0 if unavailable.
Since
This function is available since SDL 2.30.0.

◆ SDL_GameControllerGetStringForAxis()

const char * SDL_GameControllerGetStringForAxis ( SDL_GameControllerAxis  axis)
extern

Convert from an SDL_GameControllerAxis enum to a string.

The caller should not SDL_free() the returned string.

Parameters
axisan enum value for a given SDL_GameControllerAxis
Returns
a string for the given axis, or NULL if an invalid axis is specified. The string returned is of the format used by SDL_GameController mapping strings.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerGetAxisFromString

◆ SDL_GameControllerGetStringForButton()

const char * SDL_GameControllerGetStringForButton ( SDL_GameControllerButton  button)
extern

Convert from an SDL_GameControllerButton enum to a string.

The caller should not SDL_free() the returned string.

Parameters
buttonan enum value for a given SDL_GameControllerButton
Returns
a string for the given button, or NULL if an invalid button is specified. The string returned is of the format used by SDL_GameController mapping strings.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerGetButtonFromString

◆ SDL_GameControllerGetTouchpadFinger()

int SDL_GameControllerGetTouchpadFinger ( SDL_GameController gamecontroller,
int  touchpad,
int  finger,
Uint8 state,
float *  x,
float *  y,
float *  pressure 
)
extern

Get the current state of a finger on a touchpad on a game controller.

Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerGetType()

SDL_GameControllerType SDL_GameControllerGetType ( SDL_GameController gamecontroller)
extern

Get the type of this currently opened controller

This is the same name as returned by SDL_GameControllerTypeForIndex(), but it takes a controller identifier instead of the (unstable) device index.

Parameters
gamecontrollerthe game controller object to query.
Returns
the controller type.
Since
This function is available since SDL 2.0.12.

◆ SDL_GameControllerGetVendor()

Uint16 SDL_GameControllerGetVendor ( SDL_GameController gamecontroller)
extern

Get the USB vendor ID of an opened controller, if available.

If the vendor ID isn't available this function returns 0.

Parameters
gamecontrollerthe game controller object to query.
Returns
the USB vendor ID, or zero if unavailable.
Since
This function is available since SDL 2.0.6.

◆ SDL_GameControllerHasAxis()

SDL_bool SDL_GameControllerHasAxis ( SDL_GameController gamecontroller,
SDL_GameControllerAxis  axis 
)
extern

Query whether a game controller has a given axis.

This merely reports whether the controller's mapping defined this axis, as that is all the information SDL has about the physical device.

Parameters
gamecontrollera game controller
axisan axis enum value (an SDL_GameControllerAxis value)
Returns
SDL_TRUE if the controller has this axis, SDL_FALSE otherwise.
Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerHasButton()

SDL_bool SDL_GameControllerHasButton ( SDL_GameController gamecontroller,
SDL_GameControllerButton  button 
)
extern

Query whether a game controller has a given button.

This merely reports whether the controller's mapping defined this button, as that is all the information SDL has about the physical device.

Parameters
gamecontrollera game controller
buttona button enum value (an SDL_GameControllerButton value)
Returns
SDL_TRUE if the controller has this button, SDL_FALSE otherwise.
Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerHasLED()

SDL_bool SDL_GameControllerHasLED ( SDL_GameController gamecontroller)
extern

Query whether a game controller has an LED.

Parameters
gamecontrollerThe controller to query
Returns
SDL_TRUE, or SDL_FALSE if this controller does not have a modifiable LED
Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerHasRumble()

SDL_bool SDL_GameControllerHasRumble ( SDL_GameController gamecontroller)
extern

Query whether a game controller has rumble support.

Parameters
gamecontrollerThe controller to query
Returns
SDL_TRUE, or SDL_FALSE if this controller does not have rumble support
Since
This function is available since SDL 2.0.18.
See also
SDL_GameControllerRumble

◆ SDL_GameControllerHasRumbleTriggers()

SDL_bool SDL_GameControllerHasRumbleTriggers ( SDL_GameController gamecontroller)
extern

Query whether a game controller has rumble support on triggers.

Parameters
gamecontrollerThe controller to query
Returns
SDL_TRUE, or SDL_FALSE if this controller does not have trigger rumble support
Since
This function is available since SDL 2.0.18.
See also
SDL_GameControllerRumbleTriggers

◆ SDL_GameControllerHasSensor()

SDL_bool SDL_GameControllerHasSensor ( SDL_GameController gamecontroller,
SDL_SensorType  type 
)
extern

Return whether a game controller has a particular sensor.

Parameters
gamecontrollerThe controller to query
typeThe type of sensor to query
Returns
SDL_TRUE if the sensor exists, SDL_FALSE otherwise.
Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerIsSensorEnabled()

SDL_bool SDL_GameControllerIsSensorEnabled ( SDL_GameController gamecontroller,
SDL_SensorType  type 
)
extern

Query whether sensor data reporting is enabled for a game controller.

Parameters
gamecontrollerThe controller to query
typeThe type of sensor to query
Returns
SDL_TRUE if the sensor is enabled, SDL_FALSE otherwise.
Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerMapping()

char * SDL_GameControllerMapping ( SDL_GameController gamecontroller)
extern

Get the current mapping of a Game Controller.

The returned string must be freed with SDL_free().

Details about mappings are discussed with SDL_GameControllerAddMapping().

Parameters
gamecontrollerthe game controller you want to get the current mapping for
Returns
a string that has the controller's mapping or NULL if no mapping is available; call SDL_GetError() for more information.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerAddMapping
SDL_GameControllerMappingForGUID

◆ SDL_GameControllerMappingForDeviceIndex()

char * SDL_GameControllerMappingForDeviceIndex ( int  joystick_index)
extern

Get the mapping of a game controller.

This can be called before any controllers are opened.

Parameters
joystick_indexthe device_index of a device, from zero to SDL_NumJoysticks()-1
Returns
the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available.
Since
This function is available since SDL 2.0.9.

◆ SDL_GameControllerMappingForGUID()

char * SDL_GameControllerMappingForGUID ( SDL_JoystickGUID  guid)
extern

Get the game controller mapping string for a given GUID.

The returned string must be freed with SDL_free().

Parameters
guida structure containing the GUID for which a mapping is desired
Returns
a mapping string or NULL on error; call SDL_GetError() for more information.
Since
This function is available since SDL 2.0.0.
See also
SDL_JoystickGetDeviceGUID
SDL_JoystickGetGUID

◆ SDL_GameControllerMappingForIndex()

char * SDL_GameControllerMappingForIndex ( int  mapping_index)
extern

Get the mapping at a particular index.

Returns
the mapping string. Must be freed with SDL_free(). Returns NULL if the index is out of range.
Since
This function is available since SDL 2.0.6.

◆ SDL_GameControllerName()

const char * SDL_GameControllerName ( SDL_GameController gamecontroller)
extern

Get the implementation-dependent name for an opened game controller.

This is the same name as returned by SDL_GameControllerNameForIndex(), but it takes a controller identifier instead of the (unstable) device index.

Parameters
gamecontrollera game controller identifier previously returned by SDL_GameControllerOpen()
Returns
the implementation dependent name for the game controller, or NULL if there is no name or the identifier passed is invalid.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerNameForIndex
SDL_GameControllerOpen

◆ SDL_GameControllerNameForIndex()

const char * SDL_GameControllerNameForIndex ( int  joystick_index)
extern

Get the implementation dependent name for the game controller.

This function can be called before any controllers are opened.

joystick_index is the same as the device_index passed to SDL_JoystickOpen().

Parameters
joystick_indexthe device_index of a device, from zero to SDL_NumJoysticks()-1
Returns
the implementation-dependent name for the game controller, or NULL if there is no name or the index is invalid.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerName
SDL_GameControllerOpen
SDL_IsGameController

◆ SDL_GameControllerNumMappings()

int SDL_GameControllerNumMappings ( void  )
extern

Get the number of mappings installed.

Returns
the number of mappings.
Since
This function is available since SDL 2.0.6.

◆ SDL_GameControllerOpen()

SDL_GameController * SDL_GameControllerOpen ( int  joystick_index)
extern

Open a game controller for use.

joystick_index is the same as the device_index passed to SDL_JoystickOpen().

The index passed as an argument refers to the N'th game controller on the system. This index is not the value which will identify this controller in future controller events. The joystick's instance id (SDL_JoystickID) will be used there instead.

Parameters
joystick_indexthe device_index of a device, up to SDL_NumJoysticks()
Returns
a gamecontroller identifier or NULL if an error occurred; call SDL_GetError() for more information.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerClose
SDL_GameControllerNameForIndex
SDL_IsGameController

◆ SDL_GameControllerPath()

const char * SDL_GameControllerPath ( SDL_GameController gamecontroller)
extern

Get the implementation-dependent path for an opened game controller.

This is the same path as returned by SDL_GameControllerNameForIndex(), but it takes a controller identifier instead of the (unstable) device index.

Parameters
gamecontrollera game controller identifier previously returned by SDL_GameControllerOpen()
Returns
the implementation dependent path for the game controller, or NULL if there is no path or the identifier passed is invalid.
Since
This function is available since SDL 2.24.0.
See also
SDL_GameControllerPathForIndex

◆ SDL_GameControllerPathForIndex()

const char * SDL_GameControllerPathForIndex ( int  joystick_index)
extern

Get the implementation dependent path for the game controller.

This function can be called before any controllers are opened.

joystick_index is the same as the device_index passed to SDL_JoystickOpen().

Parameters
joystick_indexthe device_index of a device, from zero to SDL_NumJoysticks()-1
Returns
the implementation-dependent path for the game controller, or NULL if there is no path or the index is invalid.
Since
This function is available since SDL 2.24.0.
See also
SDL_GameControllerPath

◆ SDL_GameControllerRumble()

int SDL_GameControllerRumble ( SDL_GameController gamecontroller,
Uint16  low_frequency_rumble,
Uint16  high_frequency_rumble,
Uint32  duration_ms 
)
extern

Start a rumble effect on a game controller.

Each call to this function cancels any previous rumble effect, and calling it with 0 intensity stops any rumbling.

Parameters
gamecontrollerThe controller to vibrate
low_frequency_rumbleThe intensity of the low frequency (left) rumble motor, from 0 to 0xFFFF
high_frequency_rumbleThe intensity of the high frequency (right) rumble motor, from 0 to 0xFFFF
duration_msThe duration of the rumble effect, in milliseconds
Returns
0, or -1 if rumble isn't supported on this controller
Since
This function is available since SDL 2.0.9.
See also
SDL_GameControllerHasRumble

◆ SDL_GameControllerRumbleTriggers()

int SDL_GameControllerRumbleTriggers ( SDL_GameController gamecontroller,
Uint16  left_rumble,
Uint16  right_rumble,
Uint32  duration_ms 
)
extern

Start a rumble effect in the game controller's triggers.

Each call to this function cancels any previous trigger rumble effect, and calling it with 0 intensity stops any rumbling.

Note that this is rumbling of the triggers and not the game controller as a whole. This is currently only supported on Xbox One controllers. If you want the (more common) whole-controller rumble, use SDL_GameControllerRumble() instead.

Parameters
gamecontrollerThe controller to vibrate
left_rumbleThe intensity of the left trigger rumble motor, from 0 to 0xFFFF
right_rumbleThe intensity of the right trigger rumble motor, from 0 to 0xFFFF
duration_msThe duration of the rumble effect, in milliseconds
Returns
0, or -1 if trigger rumble isn't supported on this controller
Since
This function is available since SDL 2.0.14.
See also
SDL_GameControllerHasRumbleTriggers

◆ SDL_GameControllerSendEffect()

int SDL_GameControllerSendEffect ( SDL_GameController gamecontroller,
const void *  data,
int  size 
)
extern

Send a controller specific effect packet

Parameters
gamecontrollerThe controller to affect
dataThe data to send to the controller
sizeThe size of the data to send to the controller
Returns
0, or -1 if this controller or driver doesn't support effect packets
Since
This function is available since SDL 2.0.16.

◆ SDL_GameControllerSetLED()

int SDL_GameControllerSetLED ( SDL_GameController gamecontroller,
Uint8  red,
Uint8  green,
Uint8  blue 
)
extern

Update a game controller's LED color.

Parameters
gamecontrollerThe controller to update
redThe intensity of the red LED
greenThe intensity of the green LED
blueThe intensity of the blue LED
Returns
0, or -1 if this controller does not have a modifiable LED
Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerSetPlayerIndex()

void SDL_GameControllerSetPlayerIndex ( SDL_GameController gamecontroller,
int  player_index 
)
extern

Set the player index of an opened game controller.

Parameters
gamecontrollerthe game controller object to adjust.
player_indexPlayer index to assign to this controller, or -1 to clear the player index and turn off player LEDs.
Since
This function is available since SDL 2.0.12.

◆ SDL_GameControllerSetSensorEnabled()

int SDL_GameControllerSetSensorEnabled ( SDL_GameController gamecontroller,
SDL_SensorType  type,
SDL_bool  enabled 
)
extern

Set whether data reporting for a game controller sensor is enabled.

Parameters
gamecontrollerThe controller to update
typeThe type of sensor to enable/disable
enabledWhether data reporting should be enabled
Returns
0 or -1 if an error occurred.
Since
This function is available since SDL 2.0.14.

◆ SDL_GameControllerTypeForIndex()

SDL_GameControllerType SDL_GameControllerTypeForIndex ( int  joystick_index)
extern

Get the type of a game controller.

This can be called before any controllers are opened.

Parameters
joystick_indexthe device_index of a device, from zero to SDL_NumJoysticks()-1
Returns
the controller type.
Since
This function is available since SDL 2.0.12.

◆ SDL_GameControllerUpdate()

void SDL_GameControllerUpdate ( void  )
extern

Manually pump game controller updates if not using the loop.

This function is called automatically by the event loop if events are enabled. Under such circumstances, it will not be necessary to call this function.

Since
This function is available since SDL 2.0.0.

◆ SDL_IsGameController()

SDL_bool SDL_IsGameController ( int  joystick_index)
extern

Check if the given joystick is supported by the game controller interface.

joystick_index is the same as the device_index passed to SDL_JoystickOpen().

Parameters
joystick_indexthe device_index of a device, up to SDL_NumJoysticks()
Returns
SDL_TRUE if the given joystick is supported by the game controller interface, SDL_FALSE if it isn't or it's an invalid index.
Since
This function is available since SDL 2.0.0.
See also
SDL_GameControllerNameForIndex
SDL_GameControllerOpen