Enable joystick in all platforms

This commit is contained in:
kichikuou
2022-01-04 10:27:36 +09:00
parent 82963e8293
commit 1b907e904f
4 changed files with 7 additions and 28 deletions
-7
View File
@@ -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})
-1
View File
@@ -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
View File
@@ -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
View File
@@ -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