diff options
Diffstat (limited to 'src/libjin')
-rw-r--r-- | src/libjin/Input/Event.h | 16 | ||||
-rw-r--r-- | src/libjin/Input/Input.h | 1 | ||||
-rw-r--r-- | src/libjin/Input/Joypad.h | 36 | ||||
-rw-r--r-- | src/libjin/input/event.h | 16 | ||||
-rw-r--r-- | src/libjin/input/input.h | 1 | ||||
-rw-r--r-- | src/libjin/input/joypad.h | 36 |
6 files changed, 104 insertions, 2 deletions
diff --git a/src/libjin/Input/Event.h b/src/libjin/Input/Event.h index 831c204..cef6b88 100644 --- a/src/libjin/Input/Event.h +++ b/src/libjin/Input/Event.h @@ -16,13 +16,27 @@ namespace input enum EventType { QUIT = SDL_QUIT, + /* keyboard events */ KEY_DOWN = SDL_KEYDOWN, KEY_UP = SDL_KEYUP, + /* mouse events */ MOUSE_MOTION = SDL_MOUSEMOTION, MOUSE_BUTTON_DOWN = SDL_MOUSEBUTTONDOWN, MOUSE_BUTTON_UP = SDL_MOUSEBUTTONUP, MOUSE_WHEEL = SDL_MOUSEWHEEL, - WINDOW_EVENT = SDL_WINDOWEVENT, + /* joypad events */ + JOYBUTTONDOWN = SDL_JOYBUTTONDOWN, + JOYBUTTONUP = SDL_JOYBUTTONUP, + JOYAXISMOTION = SDL_JOYAXISMOTION, + JOYBALLMOTION = SDL_JOYBALLMOTION, + JOYHATMOTION = SDL_JOYHATMOTION, + JOYDEVICEADDED = SDL_JOYDEVICEADDED, + JOYDEVICEREMOVED = SDL_JOYDEVICEREMOVED, + CONTROLLERBUTTONDOWN = SDL_CONTROLLERBUTTONDOWN, + CONTROLLERBUTTONUP = SDL_CONTROLLERBUTTONUP, + CONTROLLERAXISMOTION = SDL_CONTROLLERAXISMOTION, + /* window evnets */ + WINDOW_EVENT = SDL_WINDOWEVENT, }; enum WindowEvent { diff --git a/src/libjin/Input/Input.h b/src/libjin/Input/Input.h index 21c9a9f..a828ac7 100644 --- a/src/libjin/Input/Input.h +++ b/src/libjin/Input/Input.h @@ -4,5 +4,6 @@ #include "event.h" #include "keyboard.h" #include "mouse.h" +#include "joypad.h" #endif
\ No newline at end of file diff --git a/src/libjin/Input/Joypad.h b/src/libjin/Input/Joypad.h index 104e52d..b630aa5 100644 --- a/src/libjin/Input/Joypad.h +++ b/src/libjin/Input/Joypad.h @@ -1,12 +1,48 @@ #ifndef __LIBJIN_JOYPAD_H #define __LIBJIN_JOYPAD_H +#include <SDL2/SDL.h> + namespace jin { namespace input { + inline const char* getJoyButtonName(int button) + { + switch (button) + { + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_A: return "A"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_B : return "B"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_X : return "X"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_Y: return "Y"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_BACK: return "Back"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_GUIDE: return "Guide"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_START: return "Start"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_LEFTSTICK: return "LeftStick"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_RIGHTSTICK: return "RightStick"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_LEFTSHOULDER: return "LeftShoulder"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_RIGHTSHOULDER: return "RightShoulder"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_UP: return "DpadUp"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_DOWN: return "DpadDown"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_LEFT: return "DpadLeft"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_RIGHT: return "DpadRight"; break; + default: return NULL; + } + } + inline const char* getJoyAxisName(int axis) + { + switch (axis) + { + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_LEFTX: return "LeftX"; break; + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_LEFTY: return "LeftY"; break; + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_RIGHTX: return "RightX"; break; + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_RIGHTY: return "RightY"; break; + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_TRIGGERLEFT: return "TriggerLeft"; break; + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_TRIGGERRIGHT: return "TriggerRight"; break; + } + } } // input } // jin diff --git a/src/libjin/input/event.h b/src/libjin/input/event.h index 831c204..cef6b88 100644 --- a/src/libjin/input/event.h +++ b/src/libjin/input/event.h @@ -16,13 +16,27 @@ namespace input enum EventType { QUIT = SDL_QUIT, + /* keyboard events */ KEY_DOWN = SDL_KEYDOWN, KEY_UP = SDL_KEYUP, + /* mouse events */ MOUSE_MOTION = SDL_MOUSEMOTION, MOUSE_BUTTON_DOWN = SDL_MOUSEBUTTONDOWN, MOUSE_BUTTON_UP = SDL_MOUSEBUTTONUP, MOUSE_WHEEL = SDL_MOUSEWHEEL, - WINDOW_EVENT = SDL_WINDOWEVENT, + /* joypad events */ + JOYBUTTONDOWN = SDL_JOYBUTTONDOWN, + JOYBUTTONUP = SDL_JOYBUTTONUP, + JOYAXISMOTION = SDL_JOYAXISMOTION, + JOYBALLMOTION = SDL_JOYBALLMOTION, + JOYHATMOTION = SDL_JOYHATMOTION, + JOYDEVICEADDED = SDL_JOYDEVICEADDED, + JOYDEVICEREMOVED = SDL_JOYDEVICEREMOVED, + CONTROLLERBUTTONDOWN = SDL_CONTROLLERBUTTONDOWN, + CONTROLLERBUTTONUP = SDL_CONTROLLERBUTTONUP, + CONTROLLERAXISMOTION = SDL_CONTROLLERAXISMOTION, + /* window evnets */ + WINDOW_EVENT = SDL_WINDOWEVENT, }; enum WindowEvent { diff --git a/src/libjin/input/input.h b/src/libjin/input/input.h index 21c9a9f..a828ac7 100644 --- a/src/libjin/input/input.h +++ b/src/libjin/input/input.h @@ -4,5 +4,6 @@ #include "event.h" #include "keyboard.h" #include "mouse.h" +#include "joypad.h" #endif
\ No newline at end of file diff --git a/src/libjin/input/joypad.h b/src/libjin/input/joypad.h index 104e52d..b630aa5 100644 --- a/src/libjin/input/joypad.h +++ b/src/libjin/input/joypad.h @@ -1,12 +1,48 @@ #ifndef __LIBJIN_JOYPAD_H #define __LIBJIN_JOYPAD_H +#include <SDL2/SDL.h> + namespace jin { namespace input { + inline const char* getJoyButtonName(int button) + { + switch (button) + { + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_A: return "A"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_B : return "B"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_X : return "X"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_Y: return "Y"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_BACK: return "Back"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_GUIDE: return "Guide"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_START: return "Start"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_LEFTSTICK: return "LeftStick"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_RIGHTSTICK: return "RightStick"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_LEFTSHOULDER: return "LeftShoulder"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_RIGHTSHOULDER: return "RightShoulder"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_UP: return "DpadUp"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_DOWN: return "DpadDown"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_LEFT: return "DpadLeft"; break; + case SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_RIGHT: return "DpadRight"; break; + default: return NULL; + } + } + inline const char* getJoyAxisName(int axis) + { + switch (axis) + { + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_LEFTX: return "LeftX"; break; + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_LEFTY: return "LeftY"; break; + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_RIGHTX: return "RightX"; break; + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_RIGHTY: return "RightY"; break; + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_TRIGGERLEFT: return "TriggerLeft"; break; + case SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_TRIGGERRIGHT: return "TriggerRight"; break; + } + } } // input } // jin |