A mapping between one joystick input to a gamepad control.
Defined in <SDL3/SDL_gamepad.h>
typedef struct SDL_GamepadBinding
{
SDL_GamepadBindingType input_type;union
{int button;
struct
{int axis;
int axis_min;
int axis_max;
} axis;
struct
{int hat;
int hat_mask;
} hat;
} input;
SDL_GamepadBindingType output_type;union
{
SDL_GamepadButton button;
struct
{
SDL_GamepadAxis axis;int axis_min;
int axis_max;
} axis;
} output; } SDL_GamepadBinding;
A gamepad has a collection of several bindings, to say, for example, when joystick button number 5 is pressed, that should be treated like the gamepad's "start" button.
SDL has these bindings built-in for many popular controllers, and can add more with a simple text string. Those strings are parsed into a collection of these structs to make it easier to operate on the data.
This struct is available since SDL 3.1.3.