PROTO::KLUDGE  0.1
Quick prototyping library for games using SDL and OpenGL.
GameController.hpp
Go to the documentation of this file.
1 #ifndef GAMECONTROLLER_HPP
2 #define GAMECONTROLLER_HPP
3 
4 #include <SDL2/SDL_gamecontroller.h>
5 
6 namespace pk
7 {
16 {
17  INVALID_AXIS = SDL_CONTROLLER_AXIS_INVALID,
18  LEFT_X = SDL_CONTROLLER_AXIS_LEFTX,
19  LEFT_Y = SDL_CONTROLLER_AXIS_LEFTY,
20  RIGHT_X = SDL_CONTROLLER_AXIS_RIGHTX,
21  RIGHT_Y = SDL_CONTROLLER_AXIS_RIGHTY,
22  TRIGGER_LEFT = SDL_CONTROLLER_AXIS_TRIGGERLEFT,
23  TRIGGER_RIGHT = SDL_CONTROLLER_AXIS_TRIGGERRIGHT,
24  AXIS_MAX = SDL_CONTROLLER_AXIS_MAX
25 };
26 
35 {
36  INVALID_BUTTON = SDL_CONTROLLER_BUTTON_INVALID,
37  A = SDL_CONTROLLER_BUTTON_A,
38  B = SDL_CONTROLLER_BUTTON_B,
39  X = SDL_CONTROLLER_BUTTON_X,
40  Y = SDL_CONTROLLER_BUTTON_Y,
41  BACK = SDL_CONTROLLER_BUTTON_BACK,
42  GUIDE = SDL_CONTROLLER_BUTTON_GUIDE,
43  START = SDL_CONTROLLER_BUTTON_START,
44  LEFT_STICK = SDL_CONTROLLER_BUTTON_LEFTSTICK,
45  RIGHT_STICK = SDL_CONTROLLER_BUTTON_RIGHTSTICK,
46  LEFT_SHOULDER = SDL_CONTROLLER_BUTTON_LEFTSHOULDER,
47  RIGHT_SHOULDER = SDL_CONTROLLER_BUTTON_RIGHTSHOULDER,
48  DPAD_UP = SDL_CONTROLLER_BUTTON_DPAD_UP,
49  DPAD_DOWN = SDL_CONTROLLER_BUTTON_DPAD_DOWN,
50  DPAD_LEFT = SDL_CONTROLLER_BUTTON_DPAD_LEFT,
51  DPAD_RIGHT = SDL_CONTROLLER_BUTTON_DPAD_RIGHT,
52  BUTTON_MAX = SDL_CONTROLLER_BUTTON_MAX
53 };
54 
62 {
63  private:
69 
79  void close();
80 
81  public:
90  GameController(int id);
91 
92  virtual ~GameController();
93 
100  int getID(){ return m_id; };
101 
108  const char* getControllerName(){ return m_name; };
109 
116  SDL_bool isConnected(){ return SDL_GameControllerGetAttached(m_controller); };
117 
124  void setDeadZone(int deadzone){ m_deadzone = deadzone; };
125 
132  int getDeadZone(){ return m_deadzone; };
133 
145  Sint16 getAxisState(int axis){ return SDL_GameControllerGetAxis(m_controller, (SDL_GameControllerAxis) axis); };
146 
158  Uint8 getButtonState(int button){ return SDL_GameControllerGetButton(m_controller, (SDL_GameControllerButton) button); };
159 
160  private:
161  SDL_GameController* m_controller;
163  int m_id;
164  const char* m_name;
165 };
166 
167 }
168 
169 #endif // GAMECONTROLLER_HPP
int getID()
Get the id for the game pad.
Definition: GameController.hpp:100
const char * getControllerName()
Get the name for the game pad.
Definition: GameController.hpp:108
const char * m_name
The name given by SDL to the game controller.
Definition: GameController.hpp:164
int getDeadZone()
Get the dead zone for the game pad.
Definition: GameController.hpp:132
Definition: GameController.hpp:21
Definition: Game.hpp:7
Definition: GameController.hpp:20
void setDeadZone(int deadzone)
Get the dead zone for the game pad&#39;s joystick(s).
Definition: GameController.hpp:124
GameControllerAxis
Mapping of SDL game pad axes for the purposes of not having to depend on memorizing SDL enums...
Definition: GameController.hpp:15
Definition: GameController.hpp:18
Definition: GameController.hpp:42
Definition: GameController.hpp:17
Definition: GameController.hpp:19
Definition: GameController.hpp:22
int m_deadzone
The value stored for the game controller&#39;s axis dead zone.
Definition: GameController.hpp:162
Definition: GameController.hpp:36
void close()
Calls SDL close routine, cleaning up for the controller without intervention. This function is called...
Definition: GameController.hpp:68
SDL_bool isConnected()
Get the connection status for the game pad.
Definition: GameController.hpp:116
Definition: GameController.hpp:38
int m_id
The id corresponding to the game controller.
Definition: GameController.hpp:163
virtual ~GameController()
Definition: GameController.hpp:52
Definition: GameController.hpp:40
Definition: GameController.hpp:51
Definition: GameController.hpp:46
Definition: GameController.hpp:23
Definition: GameController.hpp:37
Definition: GameController.hpp:47
Definition: GameController.hpp:45
Definition: GameController.hpp:41
GameController()
Default constructor - INACCESSIBLE!
Definition: GameController.hpp:68
SDL_GameController * m_controller
A handle to the SDL_GameController.
Definition: GameController.hpp:158
Definition: GameController.hpp:43
Definition: GameController.hpp:48
Definition: GameController.hpp:49
Sint16 getAxisState(int axis)
Get the axis state for the game pad.
Definition: GameController.hpp:145
Definition: GameController.hpp:44
Convenience class for abstracting functionality that already exists in SDL.
Definition: GameController.hpp:61
Definition: GameController.hpp:39
Definition: GameController.hpp:24
Definition: GameController.hpp:50
GameControllerButton
Mapping of SDL game pad buttons for the purposes of not having to depend on memorizing SDL enums...
Definition: GameController.hpp:34
Uint8 getButtonState(int button)
Get the button state for the game pad.
Definition: GameController.hpp:158