From ea09c29e04dbc3c33570c26005f7ad4ad47315a0 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 15 Jul 2018 14:34:02 +0200 Subject: [PATCH] Update implementations for other input drivers - not all input drivers support this yet --- input/drivers/android_input.c | 3 +++ input/drivers/cocoa_input.c | 3 +++ input/drivers/ctr_input.c | 3 +++ input/drivers/dos_input.c | 3 +++ input/drivers/gx_input.c | 3 +++ input/drivers/linuxraw_input.c | 3 +++ input/drivers/ps3_input.c | 3 +++ input/drivers/psp_input.c | 3 +++ input/drivers/qnx_input.c | 6 ++++-- input/drivers/rwebinput_input.c | 2 +- input/drivers/sdl_input.c | 3 +++ input/drivers/switch_input.c | 3 +++ input/drivers/wayland_input.c | 3 +++ input/drivers/x11_input.c | 5 +++-- input/drivers/xdk_xinput_input.c | 3 +++ input/drivers/xenon360_input.c | 3 +++ 16 files changed, 47 insertions(+), 5 deletions(-) diff --git a/input/drivers/android_input.c b/input/drivers/android_input.c index 7efdbdbf9a..5121418acf 100644 --- a/input/drivers/android_input.c +++ b/input/drivers/android_input.c @@ -68,6 +68,9 @@ enum { /* Use this to enable/disable using the touch screen as mouse */ #define ENABLE_TOUCH_SCREEN_MOUSE 1 +/* TODO/FIXME - + * fix game focus toggle */ + typedef struct { float x; diff --git a/input/drivers/cocoa_input.c b/input/drivers/cocoa_input.c index 2cba64d44f..fa8454a6d7 100644 --- a/input/drivers/cocoa_input.c +++ b/input/drivers/cocoa_input.c @@ -33,6 +33,9 @@ #include "../drivers_keyboard/keyboard_event_apple.h" +/* TODO/FIXME - + * fix game focus toggle */ + /* Forward declarations */ float get_backing_scale_factor(void); diff --git a/input/drivers/ctr_input.c b/input/drivers/ctr_input.c index 90702187d4..86446f3ec4 100644 --- a/input/drivers/ctr_input.c +++ b/input/drivers/ctr_input.c @@ -29,6 +29,9 @@ #define MAX_PADS 1 +/* TODO/FIXME - + * fix game focus toggle */ + typedef struct ctr_input { bool blocked; diff --git a/input/drivers/dos_input.c b/input/drivers/dos_input.c index 4c168cd5a2..2485b3b3fe 100644 --- a/input/drivers/dos_input.c +++ b/input/drivers/dos_input.c @@ -21,6 +21,9 @@ #include "../input_keymaps.h" #include "../drivers_keyboard/keyboard_event_dos.h" +/* TODO/FIXME - + * fix game focus toggle */ + typedef struct dos_input { const input_device_driver_t *joypad; diff --git a/input/drivers/gx_input.c b/input/drivers/gx_input.c index 8e4c2d42a8..5fd6801dca 100644 --- a/input/drivers/gx_input.c +++ b/input/drivers/gx_input.c @@ -31,6 +31,9 @@ #define MAX_PADS 4 #endif +/* TODO/FIXME - + * fix game focus toggle */ + typedef struct gx_input { bool blocked; diff --git a/input/drivers/linuxraw_input.c b/input/drivers/linuxraw_input.c index 72928de443..c3c3a1e21c 100644 --- a/input/drivers/linuxraw_input.c +++ b/input/drivers/linuxraw_input.c @@ -32,6 +32,9 @@ #include "../input_keymaps.h" #include "../input_driver.h" +/* TODO/FIXME - + * fix game focus toggle */ + typedef struct linuxraw_input { bool blocked; diff --git a/input/drivers/ps3_input.c b/input/drivers/ps3_input.c index f18c9ea327..7d8fee8b83 100644 --- a/input/drivers/ps3_input.c +++ b/input/drivers/ps3_input.c @@ -40,6 +40,9 @@ #define MAX_PADS 7 #endif +/* TODO/FIXME - + * fix game focus toggle */ + typedef struct { float x; diff --git a/input/drivers/psp_input.c b/input/drivers/psp_input.c index bc0cd827c0..1247a2c1f4 100644 --- a/input/drivers/psp_input.c +++ b/input/drivers/psp_input.c @@ -43,6 +43,9 @@ #include "../input_driver.h" +/* TODO/FIXME - + * fix game focus toggle */ + typedef struct psp_input { bool blocked; diff --git a/input/drivers/qnx_input.c b/input/drivers/qnx_input.c index 47b663a3ae..276a1f3ca2 100644 --- a/input/drivers/qnx_input.c +++ b/input/drivers/qnx_input.c @@ -736,12 +736,14 @@ static bool qnx_is_pressed(qnx_input_t *qnx, unsigned port, unsigned id) { const struct retro_keybind *bind = &binds[id]; + int key = bind->key; if (id >= RARCH_BIND_LIST_END) return false; - if (!qnx->blocked && qnx_keyboard_pressed(qnx, bind->key)) - return true; + if (qnx_keyboard_pressed(qnx, key)) + if ((id == RARCH_GAME_FOCUS_TOGGLE) || !qnx->blocked) + return true; if (binds && binds[id].valid && input_joypad_pressed(qnx->joypad, joypad_info, port, binds, id)) return true; diff --git a/input/drivers/rwebinput_input.c b/input/drivers/rwebinput_input.c index 69cdf07f91..ae4904c53a 100644 --- a/input/drivers/rwebinput_input.c +++ b/input/drivers/rwebinput_input.c @@ -479,7 +479,7 @@ static bool rwebinput_is_pressed(rwebinput_input_t *rwebinput, const struct retro_keybind *bind = &binds[id]; int key = bind->key; - if ((bind->key < RETROK_LAST) && rwebinput_key_pressed(rwebinput, key)) + if ((key < RETROK_LAST) && rwebinput_key_pressed(rwebinput, key)) if ((id == RARCH_GAME_FOCUS_TOGGLE) || !rwebinput->blocked) return true; diff --git a/input/drivers/sdl_input.c b/input/drivers/sdl_input.c index ead5a79903..3f42839bec 100644 --- a/input/drivers/sdl_input.c +++ b/input/drivers/sdl_input.c @@ -31,6 +31,9 @@ #include "../../verbosity.h" #include "../../tasks/tasks_internal.h" +/* TODO/FIXME - + * fix game focus toggle */ + typedef struct sdl_input { bool blocked; diff --git a/input/drivers/switch_input.c b/input/drivers/switch_input.c index a50bcdc80f..d363e22e74 100644 --- a/input/drivers/switch_input.c +++ b/input/drivers/switch_input.c @@ -13,6 +13,9 @@ #define MAX_PADS 10 +/* TODO/FIXME - + * fix game focus toggle */ + typedef struct switch_input { const input_device_driver_t *joypad; diff --git a/input/drivers/wayland_input.c b/input/drivers/wayland_input.c index 0c23db52f4..0363624320 100644 --- a/input/drivers/wayland_input.c +++ b/input/drivers/wayland_input.c @@ -47,6 +47,9 @@ #include "../../verbosity.h" +/* TODO/FIXME - + * fix game focus toggle */ + /* Forward declaration */ void flush_wayland_fd(void *data); diff --git a/input/drivers/x11_input.c b/input/drivers/x11_input.c index d2b1bcd9f5..466c94b2e3 100644 --- a/input/drivers/x11_input.c +++ b/input/drivers/x11_input.c @@ -131,8 +131,9 @@ static bool x_is_pressed(x11_input_t *x11, { const struct retro_keybind *bind = &binds[id]; - if ( (bind->key < RETROK_LAST) && x_keyboard_pressed(x11, bind->key) ) - return true; + if ((bind->key < RETROK_LAST) && x_keyboard_pressed(x11, bind->key) ) + if ((id == RARCH_GAME_FOCUS_TOGGLE) || !x11->blocked) + return true; if (binds && binds[id].valid) { diff --git a/input/drivers/xdk_xinput_input.c b/input/drivers/xdk_xinput_input.c index 3d4f1363df..0710c223d0 100644 --- a/input/drivers/xdk_xinput_input.c +++ b/input/drivers/xdk_xinput_input.c @@ -32,6 +32,9 @@ #define MAX_PADS 4 +/* TODO/FIXME - + * fix game focus toggle */ + typedef struct xdk_input { bool blocked; diff --git a/input/drivers/xenon360_input.c b/input/drivers/xenon360_input.c index e87d413992..2715055761 100644 --- a/input/drivers/xenon360_input.c +++ b/input/drivers/xenon360_input.c @@ -27,6 +27,9 @@ #define MAX_PADS 4 +/* TODO/FIXME - + * fix game focus toggle */ + static uint64_t state[MAX_PADS]; static void xenon360_input_poll(void *data)