aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-09-10 07:17:50 +0800
committerchai <chaifix@163.com>2018-09-10 07:17:50 +0800
commit8339939b7fce5236b1a933eef46e1dd4284a24aa (patch)
treef62c1cefb54e1e8b14fb91564b13d436accff1da /src
parent6decddfd8470b44609e8c3aa144380f198b7b54c (diff)
*update
Diffstat (limited to 'src')
-rw-r--r--src/jinc.cpp6
-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
-rw-r--r--src/lua/common/error.h2
-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.h1
-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.cpp50
-rw-r--r--src/lua/modules/graphics/graphics.cpp1
-rw-r--r--src/lua/modules/joypad/joypad.cpp2
-rw-r--r--src/lua/modules/keyboard/keyboard.cpp1
-rw-r--r--src/lua/modules/luax.h2
-rw-r--r--src/lua/modules/thread/Thread.cpp2
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"