mirror of
https://github.com/kichikuou/xsystem35-sdl2.git
synced 2026-09-22 22:48:08 +03:00
Enable joystick in all platforms
This commit is contained in:
@@ -183,12 +183,6 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Joystick
|
||||
|
||||
if (NOT EMSCRIPTEN AND NOT ANDROID)
|
||||
set(HAVE_SDLJOY 1)
|
||||
endif()
|
||||
|
||||
# TODO: MMX
|
||||
|
||||
function (print_summary name)
|
||||
@@ -205,7 +199,6 @@ message("------------------")
|
||||
print_summary(audio ${SUMMARY_AUDIO})
|
||||
print_summary(cdrom ${SUMMARY_CDROM})
|
||||
print_summary(midi ${SUMMARY_MIDI})
|
||||
print_summary(joystick ${SUMMARY_JOYSTICK})
|
||||
message("------------------")
|
||||
|
||||
set(PACKAGE ${PROJECT_NAME})
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
#cmakedefine HAVE_GETLOGIN @HAVE_GETLOGIN@
|
||||
#cmakedefine HAVE_JPEG @HAVE_JPEG@
|
||||
#cmakedefine HAVE_MMAP @HAVE_MMAP@
|
||||
#cmakedefine HAVE_SDLJOY @HAVE_SDLJOY@
|
||||
#cmakedefine HAVE_SIGACTION @HAVE_SIGACTION@
|
||||
#cmakedefine HAVE_UNAME @HAVE_UNAME@
|
||||
#cmakedefine HAVE_WEBP @HAVE_WEBP@
|
||||
|
||||
+5
-8
@@ -46,10 +46,8 @@ static void keyEventProsess(SDL_KeyboardEvent *e, boolean pressed);
|
||||
static int mousex, mousey, mouseb;
|
||||
boolean RawKeyInfo[256];
|
||||
|
||||
#if HAVE_SDLJOY
|
||||
/* SDL Joystick */
|
||||
static int joyinfo=0;
|
||||
#endif
|
||||
|
||||
static int mouse_to_rawkey(int button) {
|
||||
switch(button) {
|
||||
@@ -206,7 +204,7 @@ static void sdl_getEvent(void) {
|
||||
mousey = e.tfinger.y * view_h;
|
||||
break;
|
||||
|
||||
#if HAVE_SDLJOY
|
||||
|
||||
case SDL_JOYAXISMOTION:
|
||||
if (abs(e.jaxis.value) < 0x4000) {
|
||||
joyinfo &= e.jaxis.axis == 0 ? ~0xc : ~3;
|
||||
@@ -216,8 +214,10 @@ static void sdl_getEvent(void) {
|
||||
joyinfo |= 1 << i;
|
||||
}
|
||||
break;
|
||||
|
||||
case SDL_JOYBALLMOTION:
|
||||
break;
|
||||
|
||||
case SDL_JOYHATMOTION:
|
||||
joyinfo &= ~(SYS35KEY_UP | SYS35KEY_DOWN | SYS35KEY_LEFT | SYS35KEY_RIGHT);
|
||||
switch (e.jhat.value) {
|
||||
@@ -231,6 +231,7 @@ static void sdl_getEvent(void) {
|
||||
case SDL_HAT_RIGHTDOWN: joyinfo |= SYS35KEY_RIGHT | SYS35KEY_DOWN; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case SDL_JOYBUTTONDOWN:
|
||||
case SDL_JOYBUTTONUP:
|
||||
if (e.jbutton.button < 4) {
|
||||
@@ -244,7 +245,7 @@ static void sdl_getEvent(void) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
NOTICE("ev %x\n", e.type);
|
||||
break;
|
||||
@@ -308,10 +309,6 @@ int sdl_getMouseInfo(MyPoint *p) {
|
||||
}
|
||||
|
||||
int sdl_getJoyInfo(void) {
|
||||
#ifdef HAVE_SDLJOY
|
||||
sdl_getEvent();
|
||||
return joyinfo;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
+2
-12
@@ -43,7 +43,6 @@ struct sdl_private_data *sdl_videodev;
|
||||
static int joy_device_index = -1;
|
||||
static boolean integer_scaling = FALSE;
|
||||
|
||||
#ifdef HAVE_SDLJOY
|
||||
static SDL_Joystick *js;
|
||||
|
||||
static boolean joy_open_index(int index) {
|
||||
@@ -55,7 +54,7 @@ static boolean joy_open_index(int index) {
|
||||
int axes = SDL_JoystickNumAxes(js);
|
||||
int buttons = SDL_JoystickNumButtons(js);
|
||||
SDL_JoystickEventState(SDL_ENABLE);
|
||||
printf("SDL joystick '%s' %d axes %d buttons\n", name, axes, buttons);
|
||||
NOTICE("SDL joystick '%s' %d axes %d buttons\n", name, axes, buttons);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -70,7 +69,6 @@ static int joy_open(void) {
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
#endif // HAVE_SDLJOY
|
||||
|
||||
/* SDL の初期化 */
|
||||
int sdl_Initilize(void) {
|
||||
@@ -94,9 +92,7 @@ int sdl_Initilize(void) {
|
||||
emscripten_set_visibilitychange_callback(NULL, 0, NULL);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SDLJOY
|
||||
joy_open();
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -110,9 +106,7 @@ void sdl_Remove(void) {
|
||||
|
||||
SDL_DestroyRenderer(sdl_renderer);
|
||||
|
||||
#ifdef HAVE_SDLJOY
|
||||
SDL_JoystickClose(js);
|
||||
#endif
|
||||
|
||||
SDL_Quit();
|
||||
|
||||
@@ -134,11 +128,7 @@ void sdl_setWindowTitle(char *name) {
|
||||
/* Visual に応じて Window を生成する */
|
||||
static void window_init(void) {
|
||||
|
||||
SDL_Init(SDL_INIT_VIDEO
|
||||
#ifdef HAVE_SDLJOY
|
||||
|SDL_INIT_JOYSTICK
|
||||
#endif
|
||||
);
|
||||
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK);
|
||||
|
||||
#ifdef __EMSCRIPTEN__
|
||||
// Stop SDL from calling emscripten_sleep() in functions that are called
|
||||
|
||||
Reference in New Issue
Block a user