diff options
author | chai <chaifix@163.com> | 2018-09-10 07:17:50 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-09-10 07:17:50 +0800 |
commit | 8339939b7fce5236b1a933eef46e1dd4284a24aa (patch) | |
tree | f62c1cefb54e1e8b14fb91564b13d436accff1da /src | |
parent | 6decddfd8470b44609e8c3aa144380f198b7b54c (diff) |
*update
Diffstat (limited to 'src')
-rw-r--r-- | src/jinc.cpp | 6 | ||||
-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 | ||||
-rw-r--r-- | src/lua/common/error.h | 2 | ||||
-rw-r--r-- | src/lua/embed/boot.lua.h (renamed from src/lua/modules/_embed/boot.lua.h) | 0 | ||||
-rw-r--r-- | src/lua/embed/embed.h (renamed from src/lua/modules/_embed/embed.h) | 0 | ||||
-rw-r--r-- | src/lua/embed/graphics.lua.h (renamed from src/lua/modules/_embed/graphics.lua.h) | 0 | ||||
-rw-r--r-- | src/lua/embed/keyboard.lua.h (renamed from src/lua/modules/_embed/keyboard.lua.h) | 0 | ||||
-rw-r--r-- | src/lua/embed/mouse.lua.h (renamed from src/lua/modules/_embed/mouse.lua.h) | 0 | ||||
-rw-r--r-- | src/lua/embed/net.lua.h (renamed from src/lua/modules/_embed/net.lua.h) | 0 | ||||
-rw-r--r-- | src/lua/embed/path.lua.h (renamed from src/lua/modules/_embed/path.lua.h) | 0 | ||||
-rw-r--r-- | src/lua/jin.cpp (renamed from src/lua/modules/jin.cpp) | 2 | ||||
-rw-r--r-- | src/lua/jin.h (renamed from src/lua/modules/jin.h) | 0 | ||||
-rw-r--r-- | src/lua/libraries/luax/luax.h | 1 | ||||
-rw-r--r-- | src/lua/luax.h (renamed from src/luax.h) | 0 | ||||
-rw-r--r-- | src/lua/main.cpp (renamed from src/main.cpp) | 2 | ||||
-rw-r--r-- | src/lua/modules/event/event.cpp | 50 | ||||
-rw-r--r-- | src/lua/modules/graphics/graphics.cpp | 1 | ||||
-rw-r--r-- | src/lua/modules/joypad/joypad.cpp | 2 | ||||
-rw-r--r-- | src/lua/modules/keyboard/keyboard.cpp | 1 | ||||
-rw-r--r-- | src/lua/modules/luax.h | 2 | ||||
-rw-r--r-- | src/lua/modules/thread/Thread.cpp | 2 |
26 files changed, 146 insertions, 31 deletions
diff --git a/src/jinc.cpp b/src/jinc.cpp deleted file mode 100644 index 53ee178..0000000 --- a/src/jinc.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include <string> - -bool compile(std::string directory) -{ - return 0; -}
\ No newline at end of file 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 diff --git a/src/lua/common/error.h b/src/lua/common/error.h index 2b2c176..1d10faf 100644 --- a/src/lua/common/error.h +++ b/src/lua/common/error.h @@ -1,7 +1,7 @@ #ifndef __JIN_ERROR_H #define __JIN_ERROR_H #include "../../luax.h" -#include "../modules/jin.h" +#include "../jin.h" #include <string.h> namespace jin diff --git a/src/lua/modules/_embed/boot.lua.h b/src/lua/embed/boot.lua.h index f7ffc43..f7ffc43 100644 --- a/src/lua/modules/_embed/boot.lua.h +++ b/src/lua/embed/boot.lua.h diff --git a/src/lua/modules/_embed/embed.h b/src/lua/embed/embed.h index 8d0ba85..8d0ba85 100644 --- a/src/lua/modules/_embed/embed.h +++ b/src/lua/embed/embed.h diff --git a/src/lua/modules/_embed/graphics.lua.h b/src/lua/embed/graphics.lua.h index 1414efc..1414efc 100644 --- a/src/lua/modules/_embed/graphics.lua.h +++ b/src/lua/embed/graphics.lua.h diff --git a/src/lua/modules/_embed/keyboard.lua.h b/src/lua/embed/keyboard.lua.h index 77bf3a9..77bf3a9 100644 --- a/src/lua/modules/_embed/keyboard.lua.h +++ b/src/lua/embed/keyboard.lua.h diff --git a/src/lua/modules/_embed/mouse.lua.h b/src/lua/embed/mouse.lua.h index 3c222f3..3c222f3 100644 --- a/src/lua/modules/_embed/mouse.lua.h +++ b/src/lua/embed/mouse.lua.h diff --git a/src/lua/modules/_embed/net.lua.h b/src/lua/embed/net.lua.h index 4d89dc7..4d89dc7 100644 --- a/src/lua/modules/_embed/net.lua.h +++ b/src/lua/embed/net.lua.h diff --git a/src/lua/modules/_embed/path.lua.h b/src/lua/embed/path.lua.h index 648adf8..648adf8 100644 --- a/src/lua/modules/_embed/path.lua.h +++ b/src/lua/embed/path.lua.h diff --git a/src/lua/modules/jin.cpp b/src/lua/jin.cpp index 5e92ce1..e6d0a2a 100644 --- a/src/lua/modules/jin.cpp +++ b/src/lua/jin.cpp @@ -1,6 +1,6 @@ #include "jin.h" #include "lua/modules/luax.h" -#include "_embed/embed.h" +#include "embed/embed.h" namespace jin { diff --git a/src/lua/modules/jin.h b/src/lua/jin.h index fe8d6dd..fe8d6dd 100644 --- a/src/lua/modules/jin.h +++ b/src/lua/jin.h diff --git a/src/lua/libraries/luax/luax.h b/src/lua/libraries/luax/luax.h index 1c83912..0b3a713 100644 --- a/src/lua/libraries/luax/luax.h +++ b/src/lua/libraries/luax/luax.h @@ -131,6 +131,7 @@ inline bool luax_checkbool(lua_State *L, int numArg) do { lua_push##T(L, v); lua_setfield(L, -2, k); } while (0) #define luax_setfieldnumber(L, k, v) luax_setfield_(number, L, k, v) +#define luax_setfieldinteger(L, k, v) luax_setfield_(integer, L, k, v) #define luax_setfieldstring(L, k, v) luax_setfield_(string, L, k, v) #define luax_setfieldbool(L, k, v) luax_setfield_(boolean, L, k, v) #define luax_setfieldudata(L, k, v) luax_setfield_(lightuserdata, L, k, v) diff --git a/src/luax.h b/src/lua/luax.h index 89e456e..89e456e 100644 --- a/src/luax.h +++ b/src/lua/luax.h diff --git a/src/main.cpp b/src/lua/main.cpp index 18d873d..f7a5c06 100644 --- a/src/main.cpp +++ b/src/lua/main.cpp @@ -4,7 +4,7 @@ #endif #include "luax.h" -#include "lua/modules/jin.h" +#include "jin.h" #include "libjin/jin.h" #include <Windows.h> diff --git a/src/lua/modules/event/event.cpp b/src/lua/modules/event/event.cpp index 0fb438f..be54cf4 100644 --- a/src/lua/modules/event/event.cpp +++ b/src/lua/modules/event/event.cpp @@ -16,7 +16,7 @@ namespace lua */ static int l_event_poll(lua_State *L) { - // table to store events + /* table to store events */ luax_newtable(L); static Event e; int i = 1; @@ -35,14 +35,10 @@ namespace lua break; case EventType::KEY_DOWN: - luax_setfieldstring(L, "type", "KeyDown"); - luax_setfieldstring(L, "key", getKeyName(e.key.keysym.sym)); - break; - case EventType::KEY_UP: - luax_setfieldstring(L, "type", "KeyUp"); + luax_setfieldstring(L, "type", EventType::KEY_DOWN ? "KeyDown" : "KeyUp"); luax_setfieldstring(L, "key", getKeyName(e.key.keysym.sym)); - break; + break; case EventType::MOUSE_MOTION: luax_setfieldstring(L, "type", "MouseMotion"); @@ -51,18 +47,12 @@ namespace lua break; case EventType::MOUSE_BUTTON_DOWN: - luax_setfieldstring(L, "type", "MouseButtonDown"); - luax_setfieldstring(L, "button", getButtonName(e.button.button)); - luax_setfieldnumber(L, "x", e.button.x); - luax_setfieldnumber(L, "y", e.button.y); - break; - case EventType::MOUSE_BUTTON_UP: - luax_setfieldstring(L, "type", "MouseButtonUp"); + luax_setfieldstring(L, "type", e.type == EventType::MOUSE_BUTTON_DOWN ? "MouseButtonDown" : "MouseButtonUp"); luax_setfieldstring(L, "button", getButtonName(e.button.button)); luax_setfieldnumber(L, "x", e.button.x); luax_setfieldnumber(L, "y", e.button.y); - break; + break; case EventType::MOUSE_WHEEL: luax_setfieldstring(L, "type", "Wheel"); @@ -80,6 +70,36 @@ namespace lua luax_setfieldstring(L, "y", "None"); break; + case EventType::JOYBUTTONDOWN: + case EventType::JOYBUTTONUP: + luax_setfieldstring(L, "type", e.type == EventType::JOYBUTTONDOWN ? "JoyButtonDown" : "JoyButtonUp"); + luax_setfieldinteger(L, "which", e.jbutton.which); + luax_setfieldstring(L, "button", input::getJoyButtonName(e.jbutton.button)); + break; + + case EventType::JOYAXISMOTION: + luax_setfieldstring(L, "type", "JoyAxisMotion"); + luax_setfieldinteger(L, "which", e.jaxis.which); + luax_setfieldfstring(L, "axis", input::getJoyAxisName(e.jaxis.axis)); + break; + + case EventType::JOYBALLMOTION: + case EventType::JOYHATMOTION: + + case EventType::JOYDEVICEADDED: + case EventType::JOYDEVICEREMOVED: + luax_setfieldfstring(L, "type", e.type == EventType::JOYDEVICEADDED ? "JoyDeviceAdded" : "JoyDeviceRemoved"); + luax_setfieldinteger(L, "which", e.jdevice.which); + break; + + //https://stackoverflow.com/questions/50022316/what-is-sdl-joystick-and-what-is-sdl-gamecontroller-what-are-the-relationships + case EventType::CONTROLLERBUTTONDOWN: + case EventType::CONTROLLERBUTTONUP: + + + case EventType::CONTROLLERAXISMOTION: + + default: /* ignore other events */ luax_pop(L, 1); // pop table out diff --git a/src/lua/modules/graphics/graphics.cpp b/src/lua/modules/graphics/graphics.cpp index 92bc7d5..d374f51 100644 --- a/src/lua/modules/graphics/graphics.cpp +++ b/src/lua/modules/graphics/graphics.cpp @@ -2,7 +2,6 @@ #include "lua/modules/types.h" #include "libjin/jin.h" #include "lua/common/common.h" -#include "lua/modules/_embed/graphics.lua.h" namespace jin { diff --git a/src/lua/modules/joypad/joypad.cpp b/src/lua/modules/joypad/joypad.cpp index e951702..0f0f350 100644 --- a/src/lua/modules/joypad/joypad.cpp +++ b/src/lua/modules/joypad/joypad.cpp @@ -16,6 +16,6 @@ namespace lua return 1; } - + /*SDL_JoystickGetButton*/ } // lua } // jin
\ No newline at end of file diff --git a/src/lua/modules/keyboard/keyboard.cpp b/src/lua/modules/keyboard/keyboard.cpp index ffbc6b9..e384671 100644 --- a/src/lua/modules/keyboard/keyboard.cpp +++ b/src/lua/modules/keyboard/keyboard.cpp @@ -1,5 +1,4 @@ #include "lua/modules/luax.h" -#include "lua/modules/_embed/keyboard.lua.h" namespace jin { diff --git a/src/lua/modules/luax.h b/src/lua/modules/luax.h index 24d74e4..f45af39 100644 --- a/src/lua/modules/luax.h +++ b/src/lua/modules/luax.h @@ -1,6 +1,6 @@ #ifndef __JIN_MODULES_LUAX_H #define __JIN_MODULES_LUAX_H -#include "../../luax.h" +#include "../luax.h" #endif
\ No newline at end of file diff --git a/src/lua/modules/thread/Thread.cpp b/src/lua/modules/thread/Thread.cpp index 5f458ab..43c5903 100644 --- a/src/lua/modules/thread/Thread.cpp +++ b/src/lua/modules/thread/Thread.cpp @@ -1,7 +1,7 @@ #include "lua/modules/luax.h" #include "lua/modules/types.h" #include "libjin/jin.h" -#include "lua/modules/jin.h" +#include "lua/jin.h" #include "lua/common/common.h" #include "thread.h" |