From 8b00d67febf133e89f6a0bfabc41feed555dc4a9 Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 12 Jan 2019 21:48:33 +0800 Subject: =?UTF-8?q?*=E5=8E=BB=E6=8E=89=E6=96=87=E4=BB=B6=E5=89=8D=E7=BC=80?= =?UTF-8?q?je=5F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/input/event.cpp | 8 +++ src/libjin/input/event.h | 121 +++++++++++++++++++++++++++++++++++++++ src/libjin/input/input.h | 9 +++ src/libjin/input/je_event.cpp | 8 --- src/libjin/input/je_event.h | 121 --------------------------------------- src/libjin/input/je_input.h | 9 --- src/libjin/input/je_joypad.cpp | 0 src/libjin/input/je_joypad.h | 56 ------------------ src/libjin/input/je_keyboard.cpp | 0 src/libjin/input/je_keyboard.h | 20 ------- src/libjin/input/je_mouse.cpp | 28 --------- src/libjin/input/je_mouse.h | 46 --------------- src/libjin/input/joypad.cpp | 0 src/libjin/input/joypad.h | 56 ++++++++++++++++++ src/libjin/input/keyboard.cpp | 0 src/libjin/input/keyboard.h | 20 +++++++ src/libjin/input/mouse.cpp | 28 +++++++++ src/libjin/input/mouse.h | 46 +++++++++++++++ 18 files changed, 288 insertions(+), 288 deletions(-) create mode 100644 src/libjin/input/event.cpp create mode 100644 src/libjin/input/event.h create mode 100644 src/libjin/input/input.h delete mode 100644 src/libjin/input/je_event.cpp delete mode 100644 src/libjin/input/je_event.h delete mode 100644 src/libjin/input/je_input.h delete mode 100644 src/libjin/input/je_joypad.cpp delete mode 100644 src/libjin/input/je_joypad.h delete mode 100644 src/libjin/input/je_keyboard.cpp delete mode 100644 src/libjin/input/je_keyboard.h delete mode 100644 src/libjin/input/je_mouse.cpp delete mode 100644 src/libjin/input/je_mouse.h create mode 100644 src/libjin/input/joypad.cpp create mode 100644 src/libjin/input/joypad.h create mode 100644 src/libjin/input/keyboard.cpp create mode 100644 src/libjin/input/keyboard.h create mode 100644 src/libjin/input/mouse.cpp create mode 100644 src/libjin/input/mouse.h (limited to 'src/libjin/input') diff --git a/src/libjin/input/event.cpp b/src/libjin/input/event.cpp new file mode 100644 index 0000000..566eaf4 --- /dev/null +++ b/src/libjin/input/event.cpp @@ -0,0 +1,8 @@ +#include "SDL2\SDL.h" + +#include "event.h" + +namespace JinEngine +{ + +} // namespace JinEngine \ No newline at end of file diff --git a/src/libjin/input/event.h b/src/libjin/input/event.h new file mode 100644 index 0000000..f13f1d4 --- /dev/null +++ b/src/libjin/input/event.h @@ -0,0 +1,121 @@ +#ifndef __JE_EVENT_H__ +#define __JE_EVENT_H__ +#include "../core/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__ diff --git a/src/libjin/input/input.h b/src/libjin/input/input.h new file mode 100644 index 0000000..ccd8d0b --- /dev/null +++ b/src/libjin/input/input.h @@ -0,0 +1,9 @@ +#ifndef __JE_INPUT_H__ +#define __JE_INPUT_H__ + +#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/je_event.cpp b/src/libjin/input/je_event.cpp deleted file mode 100644 index 318ce59..0000000 --- a/src/libjin/input/je_event.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#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 deleted file mode 100644 index 7a90334..0000000 --- a/src/libjin/input/je_event.h +++ /dev/null @@ -1,121 +0,0 @@ -#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__ diff --git a/src/libjin/input/je_input.h b/src/libjin/input/je_input.h deleted file mode 100644 index 2abee0a..0000000 --- a/src/libjin/input/je_input.h +++ /dev/null @@ -1,9 +0,0 @@ -#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/je_joypad.cpp b/src/libjin/input/je_joypad.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/src/libjin/input/je_joypad.h b/src/libjin/input/je_joypad.h deleted file mode 100644 index fb5dc38..0000000 --- a/src/libjin/input/je_joypad.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef __JE_JOYPAD_H__ -#define __JE_JOYPAD_H__ - -#include - -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__ diff --git a/src/libjin/input/je_keyboard.cpp b/src/libjin/input/je_keyboard.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/src/libjin/input/je_keyboard.h b/src/libjin/input/je_keyboard.h deleted file mode 100644 index ffaad66..0000000 --- a/src/libjin/input/je_keyboard.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef __JE_KEYBOARD_H__ -#define __JE_KEYBOARD_H__ - -namespace JinEngine -{ - namespace Input - { - - /// - /// - /// - class Keyboard - { - - }; - - } // namespace Input -} // namespace JinEngine - -#endif // __JE_KEYBOARD_H__ diff --git a/src/libjin/input/je_mouse.cpp b/src/libjin/input/je_mouse.cpp deleted file mode 100644 index edd3cf5..0000000 --- a/src/libjin/input/je_mouse.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#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 deleted file mode 100644 index f05f3bf..0000000 --- a/src/libjin/input/je_mouse.h +++ /dev/null @@ -1,46 +0,0 @@ -#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 - { - public: - /// - /// - /// - Mouse() {}; - - /// - /// - /// - ~Mouse() {}; - - /// - /// - /// - void getState(int* x, int* y); - - /// - /// - /// - void setVisible(bool visible); - - }; - - } // namespace Input -} // namespace JinEngine - -#endif // defined(jin_input) - -#endif // __JE_MOUSE_H__ \ No newline at end of file diff --git a/src/libjin/input/joypad.cpp b/src/libjin/input/joypad.cpp new file mode 100644 index 0000000..e69de29 diff --git a/src/libjin/input/joypad.h b/src/libjin/input/joypad.h new file mode 100644 index 0000000..fb5dc38 --- /dev/null +++ b/src/libjin/input/joypad.h @@ -0,0 +1,56 @@ +#ifndef __JE_JOYPAD_H__ +#define __JE_JOYPAD_H__ + +#include + +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__ diff --git a/src/libjin/input/keyboard.cpp b/src/libjin/input/keyboard.cpp new file mode 100644 index 0000000..e69de29 diff --git a/src/libjin/input/keyboard.h b/src/libjin/input/keyboard.h new file mode 100644 index 0000000..ffaad66 --- /dev/null +++ b/src/libjin/input/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__ diff --git a/src/libjin/input/mouse.cpp b/src/libjin/input/mouse.cpp new file mode 100644 index 0000000..4971137 --- /dev/null +++ b/src/libjin/input/mouse.cpp @@ -0,0 +1,28 @@ +#include "../core/configuration.h" +#if defined(jin_input) + +#include "SDL.h" + +#include "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/mouse.h b/src/libjin/input/mouse.h new file mode 100644 index 0000000..feb982b --- /dev/null +++ b/src/libjin/input/mouse.h @@ -0,0 +1,46 @@ +#ifndef __JE_MOUSE_H__ +#define __JE_MOUSE_H__ +#include "../core/configuration.h" +#if defined(jin_input) + +#include "../common/singleton.hpp" + +namespace JinEngine +{ + namespace Input + { + + /// + /// + /// + class Mouse : public Singleton + { + public: + /// + /// + /// + Mouse() {}; + + /// + /// + /// + ~Mouse() {}; + + /// + /// + /// + void getState(int* x, int* y); + + /// + /// + /// + void setVisible(bool visible); + + }; + + } // namespace Input +} // namespace JinEngine + +#endif // defined(jin_input) + +#endif // __JE_MOUSE_H__ \ No newline at end of file -- cgit v1.1-26-g67d0