aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Input
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Input')
-rw-r--r--src/libjin/Input/Event.cpp7
-rw-r--r--src/libjin/Input/Event.h91
-rw-r--r--src/libjin/Input/Input.h8
-rw-r--r--src/libjin/Input/Joypad.h14
-rw-r--r--src/libjin/Input/Keyboard.h15
-rw-r--r--src/libjin/Input/Mouse.cpp22
-rw-r--r--src/libjin/Input/Mouse.h29
-rw-r--r--src/libjin/Input/je_event.cpp8
-rw-r--r--src/libjin/Input/je_event.h121
-rw-r--r--src/libjin/Input/je_input.h9
-rw-r--r--src/libjin/Input/je_joypad.cpp (renamed from src/libjin/Input/Joypad.cpp)0
-rw-r--r--src/libjin/Input/je_joypad.h56
-rw-r--r--src/libjin/Input/je_keyboard.cpp (renamed from src/libjin/Input/Keyboard.cpp)0
-rw-r--r--src/libjin/Input/je_keyboard.h20
-rw-r--r--src/libjin/Input/je_mouse.cpp28
-rw-r--r--src/libjin/Input/je_mouse.h49
16 files changed, 291 insertions, 186 deletions
diff --git a/src/libjin/Input/Event.cpp b/src/libjin/Input/Event.cpp
deleted file mode 100644
index 8eb45e6..0000000
--- a/src/libjin/Input/Event.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "event.h"
-#include "SDL2\SDL.h"
-
-namespace jin
-{
-
-} \ No newline at end of file
diff --git a/src/libjin/Input/Event.h b/src/libjin/Input/Event.h
deleted file mode 100644
index 9feb3a5..0000000
--- a/src/libjin/Input/Event.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef __JIN_EVENT_H
-#define __JIN_EVENT_H
-#include "../modules.h"
-#if JIN_MODULES_INPUT
-
-namespace jin
-{
-namespace input
-{
-#if JIN_INPUT_SDL
-#include "SDL.h"
-
- typedef SDL_Event Event;
- typedef SDL_Keycode Key;
- typedef SDL_MouseWheelEvent Wheel;
-
- enum EventType {
- QUIT = SDL_QUIT,
- KEY_DOWN = SDL_KEYDOWN,
- KEY_UP = SDL_KEYUP,
- MOUSE_MOTION = SDL_MOUSEMOTION,
- MOUSE_BUTTON_DOWN = SDL_MOUSEBUTTONDOWN,
- MOUSE_BUTTON_UP = SDL_MOUSEBUTTONUP,
- MOUSE_WHEEL = SDL_MOUSEWHEEL,
- WINDOW_EVENT = SDL_WINDOWEVENT,
- };
-
- enum WindowEvent {
- WINDOW_SHOWN = SDL_WINDOWEVENT_SHOWN ,
- WINDOW_HIDDEN = SDL_WINDOWEVENT_HIDDEN ,
- WINDOW_EXPOSED = SDL_WINDOWEVENT_EXPOSED ,
- WINDOW_MOVED = SDL_WINDOWEVENT_MOVED ,
- WINDOW_RESIZED = SDL_WINDOWEVENT_RESIZED ,
- WINDOW_SIZE_CAHNGE = SDL_WINDOWEVENT_SIZE_CHANGED ,
- WINDOW_MINIMIZED = SDL_WINDOWEVENT_MINIMIZED ,
- WINDOW_MAXIMIZED = SDL_WINDOWEVENT_MAXIMIZED ,
- WINDOW_RESTORED = SDL_WINDOWEVENT_RESTORED ,
- WINDOW_ENTER = SDL_WINDOWEVENT_ENTER ,
- WINDOW_LEAVE = SDL_WINDOWEVENT_LEAVE ,
- WINDOW_FOCUS_GAINED = SDL_WINDOWEVENT_FOCUS_GAINED,
- WINDOW_FOCUS_LOST = SDL_WINDOWEVENT_FOCUS_LOST ,
- WINDOW_CLOSE = SDL_WINDOWEVENT_CLOSE ,
- WINDOW_TAKE_FOCUS = SDL_WINDOWEVENT_TAKE_FOCUS ,
- WINDOW_HIT_TEST = SDL_WINDOWEVENT_HIT_TEST ,
- };
-
- inline int pollEvent(Event* e)
- {
- return SDL_PollEvent(e);
- }
-
- inline const char* getKeyName(Key key)
- {
- return SDL_GetKeyName(key);
- }
-
- inline const char* getButtonName(int button)
- {
- switch (button)
- {
- case 1: return "left";
- case 2: return "middle";
- case 3: return "right";
- case 4: return "wheelup";
- case 5: return "wheeldown";
- default: return "?";
- }
- }
-
-/*
- inline const char* getWheelName(Wheel wheel)
- {
- if (wheel.x == -1)
- return "left";
- else if (wheel.x == 1)
- return "right";
- else if (wheel.y == -1)
- return "near";
- else if (wheel.y == 1)
- return "far";
- else
- return "none";
- }
-*/
-
-#endif // JIN_INPUT_SDL
-} // input
-} // jin
-
-#endif // JIN_MODULES_INPUT
-#endif \ No newline at end of file
diff --git a/src/libjin/Input/Input.h b/src/libjin/Input/Input.h
deleted file mode 100644
index 217edd2..0000000
--- a/src/libjin/Input/Input.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __JIN_INPUT_H
-#define __JIN_INPUT_H
-
-#include "event.h"
-#include "keyboard.h"
-#include "mouse.h"
-
-#endif \ No newline at end of file
diff --git a/src/libjin/Input/Joypad.h b/src/libjin/Input/Joypad.h
deleted file mode 100644
index e8d309b..0000000
--- a/src/libjin/Input/Joypad.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __JIN_JOYPAD_H
-#define __JIN_JOYPAD_H
-
-namespace jin
-{
-namespace input
-{
-
-
-
-}
-}
-
-#endif \ No newline at end of file
diff --git a/src/libjin/Input/Keyboard.h b/src/libjin/Input/Keyboard.h
deleted file mode 100644
index 3e78ab1..0000000
--- a/src/libjin/Input/Keyboard.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __JIN_KEYBOARD_H
-#define __JIN_KEYBOARD_H
-
-namespace jin
-{
-namespace input
-{
- class Keyboard
- {
-
- };
-}
-}
-
-#endif // __JIN_KEYBOARD_H \ No newline at end of file
diff --git a/src/libjin/Input/Mouse.cpp b/src/libjin/Input/Mouse.cpp
deleted file mode 100644
index 98c4a39..0000000
--- a/src/libjin/Input/Mouse.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "../modules.h"
-#ifdef JIN_MODULES_INPUT
-
-#include "SDL.h"
-#include "Mouse.h"
-
-namespace jin
-{
-namespace input
-{
-
- void Mouse::getState(int* x, int* y)
- {
-#ifdef JIN_INPUT_SDL
- SDL_GetMouseState(x, y);
-#endif // JIN_INPUT_SDL
- }
-
-} // input
-} // jin
-
-#endif // JIN_MODULES_INPUT \ No newline at end of file
diff --git a/src/libjin/Input/Mouse.h b/src/libjin/Input/Mouse.h
deleted file mode 100644
index 5fc6b47..0000000
--- a/src/libjin/Input/Mouse.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef __JIN_MOUSE_H
-#define __JIN_MOUSE_H
-#include "../modules.h"
-#ifdef JIN_MODULES_INPUT
-
-#include "../Common/Singleton.hpp"
-
-namespace jin
-{
-namespace input
-{
- class Mouse : public Singleton<Mouse>
- {
- public:
-
- //
- void getState(int* x, int* y);
-
- private:
- Mouse() {};
- ~Mouse() {};
-
- SINGLETON(Mouse);
- };
-}
-}
-
-#endif // JIN_MODULES_INPUT
-#endif // __JIN_MOUSE_H \ No newline at end of file
diff --git a/src/libjin/Input/je_event.cpp b/src/libjin/Input/je_event.cpp
new file mode 100644
index 0000000..318ce59
--- /dev/null
+++ b/src/libjin/Input/je_event.cpp
@@ -0,0 +1,8 @@
+#include "SDL2\SDL.h"
+
+#include "je_event.h"
+
+namespace JinEngine
+{
+
+} // namespace JinEngine \ No newline at end of file
diff --git a/src/libjin/Input/je_event.h b/src/libjin/Input/je_event.h
new file mode 100644
index 0000000..126d0f6
--- /dev/null
+++ b/src/libjin/Input/je_event.h
@@ -0,0 +1,121 @@
+#ifndef __JE_EVENT_H
+#define __JE_EVENT_H
+#include "../core/je_configuration.h"
+#if defined(jin_input)
+
+namespace JinEngine
+{
+ namespace Input
+ {
+ #if jin_input == jin_input_sdl
+ #include "SDL.h"
+
+ typedef SDL_Event Event;
+ typedef SDL_Keycode Key;
+ typedef SDL_MouseWheelEvent Wheel;
+
+ ///
+ ///
+ ///
+ 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,
+ /* 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 {
+ WINDOW_SHOWN = SDL_WINDOWEVENT_SHOWN ,
+ WINDOW_HIDDEN = SDL_WINDOWEVENT_HIDDEN ,
+ WINDOW_EXPOSED = SDL_WINDOWEVENT_EXPOSED ,
+ WINDOW_MOVED = SDL_WINDOWEVENT_MOVED ,
+ WINDOW_RESIZED = SDL_WINDOWEVENT_RESIZED ,
+ WINDOW_SIZE_CAHNGE = SDL_WINDOWEVENT_SIZE_CHANGED ,
+ WINDOW_MINIMIZED = SDL_WINDOWEVENT_MINIMIZED ,
+ WINDOW_MAXIMIZED = SDL_WINDOWEVENT_MAXIMIZED ,
+ WINDOW_RESTORED = SDL_WINDOWEVENT_RESTORED ,
+ WINDOW_ENTER = SDL_WINDOWEVENT_ENTER ,
+ WINDOW_LEAVE = SDL_WINDOWEVENT_LEAVE ,
+ WINDOW_FOCUS_GAINED = SDL_WINDOWEVENT_FOCUS_GAINED,
+ WINDOW_FOCUS_LOST = SDL_WINDOWEVENT_FOCUS_LOST ,
+ WINDOW_CLOSE = SDL_WINDOWEVENT_CLOSE ,
+ WINDOW_TAKE_FOCUS = SDL_WINDOWEVENT_TAKE_FOCUS ,
+ WINDOW_HIT_TEST = SDL_WINDOWEVENT_HIT_TEST ,
+ };
+
+ ///
+ ///
+ ///
+ inline int pollEvent(Event* e)
+ {
+ return SDL_PollEvent(e);
+ }
+
+ ///
+ ///
+ ///
+ inline const char* getKeyName(Key key)
+ {
+ return SDL_GetKeyName(key);
+ }
+
+ ///
+ ///
+ ///
+ inline const char* getButtonName(int button)
+ {
+ switch (button)
+ {
+ case 1: return "Left";
+ case 2: return "Middle";
+ case 3: return "Right";
+ case 4: return "WheelUp";
+ case 5: return "WheelDown";
+ default: return "?";
+ }
+ }
+
+ /*
+ inline const char* getWheelName(Wheel wheel)
+ {
+ if (wheel.x == -1)
+ return "left";
+ else if (wheel.x == 1)
+ return "right";
+ else if (wheel.y == -1)
+ return "near";
+ else if (wheel.y == 1)
+ return "far";
+ else
+ return "none";
+ }
+ */
+
+ #endif // jin_input == jin_input_sdl
+ } // namespace Input
+} // namespace JinEngine
+
+#endif // defined(jin_input)
+
+#endif // __JE_EVENT_H \ No newline at end of file
diff --git a/src/libjin/Input/je_input.h b/src/libjin/Input/je_input.h
new file mode 100644
index 0000000..8c7faf7
--- /dev/null
+++ b/src/libjin/Input/je_input.h
@@ -0,0 +1,9 @@
+#ifndef __JE_INPUT_H
+#define __JE_INPUT_H
+
+#include "je_event.h"
+#include "je_keyboard.h"
+#include "je_mouse.h"
+#include "je_joypad.h"
+
+#endif \ No newline at end of file
diff --git a/src/libjin/Input/Joypad.cpp b/src/libjin/Input/je_joypad.cpp
index e69de29..e69de29 100644
--- a/src/libjin/Input/Joypad.cpp
+++ b/src/libjin/Input/je_joypad.cpp
diff --git a/src/libjin/Input/je_joypad.h b/src/libjin/Input/je_joypad.h
new file mode 100644
index 0000000..74173af
--- /dev/null
+++ b/src/libjin/Input/je_joypad.h
@@ -0,0 +1,56 @@
+#ifndef __JE_JOYPAD_H
+#define __JE_JOYPAD_H
+
+#include <SDL2/SDL.h>
+
+namespace JinEngine
+{
+ 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;
+ }
+ }
+
+ } // namespace Input
+} // namespace JinEngine
+
+#endif // __JE_JOYPAD_H \ No newline at end of file
diff --git a/src/libjin/Input/Keyboard.cpp b/src/libjin/Input/je_keyboard.cpp
index e69de29..e69de29 100644
--- a/src/libjin/Input/Keyboard.cpp
+++ b/src/libjin/Input/je_keyboard.cpp
diff --git a/src/libjin/Input/je_keyboard.h b/src/libjin/Input/je_keyboard.h
new file mode 100644
index 0000000..61da361
--- /dev/null
+++ b/src/libjin/Input/je_keyboard.h
@@ -0,0 +1,20 @@
+#ifndef __JE_KEYBOARD_H
+#define __JE_KEYBOARD_H
+
+namespace JinEngine
+{
+ namespace Input
+ {
+
+ ///
+ ///
+ ///
+ class Keyboard
+ {
+
+ };
+
+ } // namespace Input
+} // namespace JinEngine
+
+#endif // __JE_KEYBOARD_H \ No newline at end of file
diff --git a/src/libjin/Input/je_mouse.cpp b/src/libjin/Input/je_mouse.cpp
new file mode 100644
index 0000000..476b1a2
--- /dev/null
+++ b/src/libjin/Input/je_mouse.cpp
@@ -0,0 +1,28 @@
+#include "../core/je_configuration.h"
+#if defined(jin_input)
+
+#include "SDL.h"
+
+#include "je_mouse.h"
+
+namespace JinEngine
+{
+ namespace Input
+ {
+
+ void Mouse::getState(int* x, int* y)
+ {
+ #ifdef jin_input == jin_input_sdl
+ SDL_GetMouseState(x, y);
+ #endif
+ }
+
+ void Mouse::setVisible(bool visible)
+ {
+ SDL_ShowCursor(visible ? SDL_ENABLE : SDL_DISABLE);
+ }
+
+ } // namespace Input
+} // namespace JinEngine
+
+#endif // defined(jin_input) \ No newline at end of file
diff --git a/src/libjin/Input/je_mouse.h b/src/libjin/Input/je_mouse.h
new file mode 100644
index 0000000..29038ec
--- /dev/null
+++ b/src/libjin/Input/je_mouse.h
@@ -0,0 +1,49 @@
+#ifndef __JE_MOUSE_H
+#define __JE_MOUSE_H
+#include "../core/je_configuration.h"
+#if defined(jin_input)
+
+#include "../common/je_singleton.hpp"
+
+namespace JinEngine
+{
+ namespace Input
+ {
+
+ ///
+ ///
+ ///
+ class Mouse : public Singleton<Mouse>
+ {
+ public:
+ ///
+ ///
+ ///
+ void getState(int* x, int* y);
+
+ ///
+ ///
+ ///
+ void setVisible(bool visible);
+
+ private:
+ singleton(Mouse);
+
+ ///
+ ///
+ ///
+ Mouse() {};
+
+ ///
+ ///
+ ///
+ ~Mouse() {};
+
+ };
+
+ } // namespace Input
+} // namespace JinEngine
+
+#endif // defined(jin_input)
+
+#endif // __JE_MOUSE_H \ No newline at end of file