28 #ifndef SDL_gamecontroller_h_
29 #define SDL_gamecontroller_h_
58 struct _SDL_GameController;
59 typedef struct _SDL_GameController SDL_GameController;
63 SDL_CONTROLLER_TYPE_UNKNOWN = 0,
64 SDL_CONTROLLER_TYPE_XBOX360,
65 SDL_CONTROLLER_TYPE_XBOXONE,
66 SDL_CONTROLLER_TYPE_PS3,
67 SDL_CONTROLLER_TYPE_PS4,
68 SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO,
69 SDL_CONTROLLER_TYPE_VIRTUAL,
70 SDL_CONTROLLER_TYPE_PS5
71 } SDL_GameControllerType;
75 SDL_CONTROLLER_BINDTYPE_NONE = 0,
76 SDL_CONTROLLER_BINDTYPE_BUTTON,
77 SDL_CONTROLLER_BINDTYPE_AXIS,
78 SDL_CONTROLLER_BINDTYPE_HAT
79 } SDL_GameControllerBindType;
86 SDL_GameControllerBindType bindType;
141 #define SDL_GameControllerAddMappingsFromFile(file) SDL_GameControllerAddMappingsFromRW(SDL_RWFromFile(file, "rb"), 1)
314 SDL_CONTROLLER_AXIS_INVALID = -1,
315 SDL_CONTROLLER_AXIS_LEFTX,
316 SDL_CONTROLLER_AXIS_LEFTY,
317 SDL_CONTROLLER_AXIS_RIGHTX,
318 SDL_CONTROLLER_AXIS_RIGHTY,
319 SDL_CONTROLLER_AXIS_TRIGGERLEFT,
320 SDL_CONTROLLER_AXIS_TRIGGERRIGHT,
321 SDL_CONTROLLER_AXIS_MAX
344 extern DECLSPEC SDL_bool SDLCALL
355 extern DECLSPEC Sint16 SDLCALL
363 SDL_CONTROLLER_BUTTON_INVALID = -1,
364 SDL_CONTROLLER_BUTTON_A,
365 SDL_CONTROLLER_BUTTON_B,
366 SDL_CONTROLLER_BUTTON_X,
367 SDL_CONTROLLER_BUTTON_Y,
368 SDL_CONTROLLER_BUTTON_BACK,
369 SDL_CONTROLLER_BUTTON_GUIDE,
370 SDL_CONTROLLER_BUTTON_START,
371 SDL_CONTROLLER_BUTTON_LEFTSTICK,
372 SDL_CONTROLLER_BUTTON_RIGHTSTICK,
373 SDL_CONTROLLER_BUTTON_LEFTSHOULDER,
374 SDL_CONTROLLER_BUTTON_RIGHTSHOULDER,
375 SDL_CONTROLLER_BUTTON_DPAD_UP,
376 SDL_CONTROLLER_BUTTON_DPAD_DOWN,
377 SDL_CONTROLLER_BUTTON_DPAD_LEFT,
378 SDL_CONTROLLER_BUTTON_DPAD_RIGHT,
379 SDL_CONTROLLER_BUTTON_MISC1,
380 SDL_CONTROLLER_BUTTON_PADDLE1,
381 SDL_CONTROLLER_BUTTON_PADDLE2,
382 SDL_CONTROLLER_BUTTON_PADDLE3,
383 SDL_CONTROLLER_BUTTON_PADDLE4,
384 SDL_CONTROLLER_BUTTON_TOUCHPAD,
385 SDL_CONTROLLER_BUTTON_MAX
491 extern DECLSPEC
int SDLCALL
SDL_GameControllerRumble(SDL_GameController *gamecontroller, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms);