diff options
Diffstat (limited to 'src/libjin/Input')
-rw-r--r-- | src/libjin/Input/Event.cpp | 7 | ||||
-rw-r--r-- | src/libjin/Input/Event.h | 91 | ||||
-rw-r--r-- | src/libjin/Input/Input.h | 8 | ||||
-rw-r--r-- | src/libjin/Input/Joypad.h | 14 | ||||
-rw-r--r-- | src/libjin/Input/Keyboard.h | 15 | ||||
-rw-r--r-- | src/libjin/Input/Mouse.cpp | 22 | ||||
-rw-r--r-- | src/libjin/Input/Mouse.h | 29 | ||||
-rw-r--r-- | src/libjin/Input/je_event.cpp | 8 | ||||
-rw-r--r-- | src/libjin/Input/je_event.h | 121 | ||||
-rw-r--r-- | src/libjin/Input/je_input.h | 9 | ||||
-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.h | 56 | ||||
-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.h | 20 | ||||
-rw-r--r-- | src/libjin/Input/je_mouse.cpp | 28 | ||||
-rw-r--r-- | src/libjin/Input/je_mouse.h | 49 |
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 |