aboutsummaryrefslogtreecommitdiff
path: root/src/libjin
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin')
-rw-r--r--src/libjin/Input/Event.h16
-rw-r--r--src/libjin/Input/Input.h1
-rw-r--r--src/libjin/Input/Joypad.h36
-rw-r--r--src/libjin/input/event.h16
-rw-r--r--src/libjin/input/input.h1
-rw-r--r--src/libjin/input/joypad.h36
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