My Project
SDL_gamecontroller.h
Go to the documentation of this file.
1 /*
2  Simple DirectMedia Layer
3  Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
4 
5  This software is provided 'as-is', without any express or implied
6  warranty. In no event will the authors be held liable for any damages
7  arising from the use of this software.
8 
9  Permission is granted to anyone to use this software for any purpose,
10  including commercial applications, and to alter it and redistribute it
11  freely, subject to the following restrictions:
12 
13  1. The origin of this software must not be misrepresented; you must not
14  claim that you wrote the original software. If you use this software
15  in a product, an acknowledgment in the product documentation would be
16  appreciated but is not required.
17  2. Altered source versions must be plainly marked as such, and must not be
18  misrepresented as being the original software.
19  3. This notice may not be removed or altered from any source distribution.
20 */
21 
28 #ifndef SDL_gamecontroller_h_
29 #define SDL_gamecontroller_h_
30 
31 #include "SDL_stdinc.h"
32 #include "SDL_error.h"
33 #include "SDL_rwops.h"
34 #include "SDL_joystick.h"
35 
36 #include "begin_code.h"
37 /* Set up for C function definitions, even when using C++ */
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
57 struct _SDL_GameController;
58 typedef struct _SDL_GameController SDL_GameController;
59 
60 
61 typedef enum
62 {
63  SDL_CONTROLLER_BINDTYPE_NONE = 0,
64  SDL_CONTROLLER_BINDTYPE_BUTTON,
65  SDL_CONTROLLER_BINDTYPE_AXIS,
66  SDL_CONTROLLER_BINDTYPE_HAT
67 } SDL_GameControllerBindType;
68 
73 {
74  SDL_GameControllerBindType bindType;
75  union
76  {
77  int button;
78  int axis;
79  struct {
80  int hat;
81  int hat_mask;
82  } hat;
83  } value;
84 
86 
87 
122 extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW(SDL_RWops * rw, int freerw);
123 
129 #define SDL_GameControllerAddMappingsFromFile(file) SDL_GameControllerAddMappingsFromRW(SDL_RWFromFile(file, "rb"), 1)
130 
136 extern DECLSPEC int SDLCALL SDL_GameControllerAddMapping(const char* mappingString);
137 
143 extern DECLSPEC int SDLCALL SDL_GameControllerNumMappings(void);
144 
150 extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForIndex(int mapping_index);
151 
157 extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID(SDL_JoystickGUID guid);
158 
164 extern DECLSPEC char * SDLCALL SDL_GameControllerMapping(SDL_GameController * gamecontroller);
165 
169 extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index);
170 
176 extern DECLSPEC const char *SDLCALL SDL_GameControllerNameForIndex(int joystick_index);
177 
184 extern DECLSPEC char *SDLCALL SDL_GameControllerMappingForDeviceIndex(int joystick_index);
185 
195 extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerOpen(int joystick_index);
196 
200 extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromInstanceID(SDL_JoystickID joyid);
201 
205 extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller);
206 
212 extern DECLSPEC int SDLCALL SDL_GameControllerGetPlayerIndex(SDL_GameController *gamecontroller);
213 
218 extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetVendor(SDL_GameController * gamecontroller);
219 
224 extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProduct(SDL_GameController * gamecontroller);
225 
230 extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProductVersion(SDL_GameController * gamecontroller);
231 
236 extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerGetAttached(SDL_GameController *gamecontroller);
237 
241 extern DECLSPEC SDL_Joystick *SDLCALL SDL_GameControllerGetJoystick(SDL_GameController *gamecontroller);
242 
252 extern DECLSPEC int SDLCALL SDL_GameControllerEventState(int state);
253 
260 extern DECLSPEC void SDLCALL SDL_GameControllerUpdate(void);
261 
262 
272 typedef enum
273 {
274  SDL_CONTROLLER_AXIS_INVALID = -1,
275  SDL_CONTROLLER_AXIS_LEFTX,
276  SDL_CONTROLLER_AXIS_LEFTY,
277  SDL_CONTROLLER_AXIS_RIGHTX,
278  SDL_CONTROLLER_AXIS_RIGHTY,
279  SDL_CONTROLLER_AXIS_TRIGGERLEFT,
280  SDL_CONTROLLER_AXIS_TRIGGERRIGHT,
281  SDL_CONTROLLER_AXIS_MAX
283 
287 extern DECLSPEC SDL_GameControllerAxis SDLCALL SDL_GameControllerGetAxisFromString(const char *pchString);
288 
292 extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis);
293 
297 extern DECLSPEC SDL_GameControllerButtonBind SDLCALL
298 SDL_GameControllerGetBindForAxis(SDL_GameController *gamecontroller,
300 
309 extern DECLSPEC Sint16 SDLCALL
310 SDL_GameControllerGetAxis(SDL_GameController *gamecontroller,
312 
316 typedef enum
317 {
318  SDL_CONTROLLER_BUTTON_INVALID = -1,
319  SDL_CONTROLLER_BUTTON_A,
320  SDL_CONTROLLER_BUTTON_B,
321  SDL_CONTROLLER_BUTTON_X,
322  SDL_CONTROLLER_BUTTON_Y,
323  SDL_CONTROLLER_BUTTON_BACK,
324  SDL_CONTROLLER_BUTTON_GUIDE,
325  SDL_CONTROLLER_BUTTON_START,
326  SDL_CONTROLLER_BUTTON_LEFTSTICK,
327  SDL_CONTROLLER_BUTTON_RIGHTSTICK,
328  SDL_CONTROLLER_BUTTON_LEFTSHOULDER,
329  SDL_CONTROLLER_BUTTON_RIGHTSHOULDER,
330  SDL_CONTROLLER_BUTTON_DPAD_UP,
331  SDL_CONTROLLER_BUTTON_DPAD_DOWN,
332  SDL_CONTROLLER_BUTTON_DPAD_LEFT,
333  SDL_CONTROLLER_BUTTON_DPAD_RIGHT,
334  SDL_CONTROLLER_BUTTON_MAX
336 
340 extern DECLSPEC SDL_GameControllerButton SDLCALL SDL_GameControllerGetButtonFromString(const char *pchString);
341 
345 extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForButton(SDL_GameControllerButton button);
346 
350 extern DECLSPEC SDL_GameControllerButtonBind SDLCALL
351 SDL_GameControllerGetBindForButton(SDL_GameController *gamecontroller,
352  SDL_GameControllerButton button);
353 
354 
360 extern DECLSPEC Uint8 SDLCALL SDL_GameControllerGetButton(SDL_GameController *gamecontroller,
361  SDL_GameControllerButton button);
362 
374 extern DECLSPEC int SDLCALL SDL_GameControllerRumble(SDL_GameController *gamecontroller, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms);
375 
379 extern DECLSPEC void SDLCALL SDL_GameControllerClose(SDL_GameController *gamecontroller);
380 
381 
382 /* Ends C function definitions when using C++ */
383 #ifdef __cplusplus
384 }
385 #endif
386 #include "close_code.h"
387 
388 #endif /* SDL_gamecontroller_h_ */
389 
390 /* vi: set ts=4 sw=4 expandtab: */
DECLSPEC SDL_Joystick *SDLCALL SDL_GameControllerGetJoystick(SDL_GameController *gamecontroller)
struct SDL_GameControllerButtonBind SDL_GameControllerButtonBind
DECLSPEC Uint8 SDLCALL SDL_GameControllerGetButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button)
DECLSPEC Uint16 SDLCALL SDL_GameControllerGetVendor(SDL_GameController *gamecontroller)
DECLSPEC const char *SDLCALL SDL_GameControllerGetStringForButton(SDL_GameControllerButton button)
DECLSPEC char *SDLCALL SDL_GameControllerMappingForDeviceIndex(int joystick_index)
Definition: SDL_gamecontroller.h:72
SDL_GameControllerButton
Definition: SDL_gamecontroller.h:316
DECLSPEC int SDLCALL SDL_GameControllerAddMapping(const char *mappingString)
DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProductVersion(SDL_GameController *gamecontroller)
SDL_GameControllerAxis
Definition: SDL_gamecontroller.h:272
DECLSPEC char *SDLCALL SDL_GameControllerMappingForGUID(SDL_JoystickGUID guid)
DECLSPEC SDL_GameControllerButtonBind SDLCALL SDL_GameControllerGetBindForButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button)
DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller)
DECLSPEC int SDLCALL SDL_GameControllerRumble(SDL_GameController *gamecontroller, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms)
DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW(SDL_RWops *rw, int freerw)
DECLSPEC SDL_bool SDLCALL SDL_GameControllerGetAttached(SDL_GameController *gamecontroller)
DECLSPEC SDL_GameControllerButton SDLCALL SDL_GameControllerGetButtonFromString(const char *pchString)
DECLSPEC int SDLCALL SDL_GameControllerEventState(int state)
DECLSPEC const char *SDLCALL SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis)
DECLSPEC int SDLCALL SDL_GameControllerNumMappings(void)
Definition: SDL_joystick.h:70
Sint32 SDL_JoystickID
Definition: SDL_joystick.h:81
DECLSPEC SDL_GameControllerButtonBind SDLCALL SDL_GameControllerGetBindForAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis)
DECLSPEC char *SDLCALL SDL_GameControllerMapping(SDL_GameController *gamecontroller)
DECLSPEC void SDLCALL SDL_GameControllerUpdate(void)
DECLSPEC void SDLCALL SDL_GameControllerClose(SDL_GameController *gamecontroller)
DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromInstanceID(SDL_JoystickID joyid)
DECLSPEC SDL_GameControllerAxis SDLCALL SDL_GameControllerGetAxisFromString(const char *pchString)
DECLSPEC const char *SDLCALL SDL_GameControllerNameForIndex(int joystick_index)
DECLSPEC int SDLCALL SDL_GameControllerGetPlayerIndex(SDL_GameController *gamecontroller)
DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProduct(SDL_GameController *gamecontroller)
DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index)
DECLSPEC Sint16 SDLCALL SDL_GameControllerGetAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis)
DECLSPEC char *SDLCALL SDL_GameControllerMappingForIndex(int mapping_index)
DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerOpen(int joystick_index)
Definition: SDL_rwops.h:52