diff --git a/input/drivers/android_input.c b/input/drivers/android_input.c index d796a0db9d..e9edb1106d 100644 --- a/input/drivers/android_input.c +++ b/input/drivers/android_input.c @@ -1466,7 +1466,7 @@ bool android_run_events(void *data) } static int16_t android_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) { @@ -1483,17 +1483,17 @@ static int16_t android_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; if ((uint16_t)joykey != NO_BTN && android->joypad->button( - joypad_info.joy_idx, (uint16_t)joykey)) + joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } if (((float)abs(android->joypad->axis( - joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -1507,14 +1507,14 @@ static int16_t android_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; if ((uint16_t)joykey != NO_BTN && android->joypad->button( - joypad_info.joy_idx, (uint16_t)joykey)) + joypad_info->joy_idx, (uint16_t)joykey)) return true; if (((float)abs(android->joypad->axis( - joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; if (android_keyboard_port_input_pressed(binds[port], id)) return true; diff --git a/input/drivers/cocoa_input.c b/input/drivers/cocoa_input.c index 876ef8f3b0..dffe1de7e1 100644 --- a/input/drivers/cocoa_input.c +++ b/input/drivers/cocoa_input.c @@ -289,7 +289,7 @@ static int16_t cocoa_pointer_state(cocoa_input_data_t *apple, } static int16_t cocoa_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) { @@ -306,9 +306,9 @@ static int16_t cocoa_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; if (apple_key_state[rarch_keysym_lut[binds[port][i].key]]) { @@ -316,23 +316,23 @@ static int16_t cocoa_input_state(void *data, continue; } - if ((uint16_t)joykey != NO_BTN && apple->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && apple->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(apple->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(apple->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; } #ifdef HAVE_MFI - if ((uint16_t)joykey != NO_BTN && apple->sec_joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && apple->sec_joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(apple->sec_joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(apple->sec_joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -345,21 +345,21 @@ static int16_t cocoa_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; if (id < RARCH_BIND_LIST_END) if (apple_key_state[rarch_keysym_lut[binds[port][id].key]]) return true; if ((uint16_t)joykey != NO_BTN && apple->joypad->button( - joypad_info.joy_idx, (uint16_t)joykey)) + joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(apple->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(apple->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; #ifdef HAVE_MFI - if ((uint16_t)joykey != NO_BTN && apple->sec_joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && apple->sec_joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(apple->sec_joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(apple->sec_joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; #endif } diff --git a/input/drivers/ctr_input.c b/input/drivers/ctr_input.c index 04f77c5adb..daa8685f6d 100644 --- a/input/drivers/ctr_input.c +++ b/input/drivers/ctr_input.c @@ -44,7 +44,7 @@ static void ctr_input_poll(void *data) } static int16_t ctr_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) @@ -65,17 +65,18 @@ static int16_t ctr_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; if ((uint16_t)joykey != NO_BTN && - ctr->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + ctr->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(ctr->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(ctr->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -88,13 +89,14 @@ static int16_t ctr_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; - if ((uint16_t)joykey != NO_BTN && ctr->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && ctr->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(ctr->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(ctr->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } break; diff --git a/input/drivers/dinput.c b/input/drivers/dinput.c index dea99253e0..e155e9d58b 100644 --- a/input/drivers/dinput.c +++ b/input/drivers/dinput.c @@ -554,7 +554,7 @@ static int16_t dinput_pointer_state(struct dinput_input *di, } static int16_t dinput_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) { @@ -583,9 +583,9 @@ static int16_t dinput_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; if (dinput_mouse_button_pressed( di, port, binds[port][i].mbutton)) @@ -596,13 +596,13 @@ static int16_t dinput_input_state(void *data, if ((uint16_t)joykey != NO_BTN && di->joypad->button( - joypad_info.joy_idx, (uint16_t)joykey)) + joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(di->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(di->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -625,16 +625,16 @@ static int16_t dinput_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; if (dinput_mouse_button_pressed(di, port, binds[port][id].mbutton)) return true; if ((uint16_t)joykey != NO_BTN - && di->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + && di->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(di->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(di->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } } @@ -737,16 +737,16 @@ static int16_t dinput_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][new_id].joykey != NO_BTN) - ? binds[port][new_id].joykey : joypad_info.auto_binds[new_id].joykey; + ? binds[port][new_id].joykey : joypad_info->auto_binds[new_id].joykey; const uint32_t joyaxis = (binds[port][new_id].joyaxis != AXIS_NONE) - ? binds[port][new_id].joyaxis : joypad_info.auto_binds[new_id].joyaxis; + ? binds[port][new_id].joyaxis : joypad_info->auto_binds[new_id].joyaxis; if (dinput_mouse_button_pressed(di, port, binds[port][new_id].mbutton)) return true; if ((uint16_t)joykey != NO_BTN - && di->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + && di->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(di->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(di->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } } diff --git a/input/drivers/dos_input.c b/input/drivers/dos_input.c index 3f27c74edc..7877ddc424 100644 --- a/input/drivers/dos_input.c +++ b/input/drivers/dos_input.c @@ -70,7 +70,7 @@ static void dos_input_poll(void *data) } static int16_t dos_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) @@ -91,16 +91,16 @@ static int16_t dos_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; - if ((uint16_t)joykey != NO_BTN && dos->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && dos->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(dos->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(dos->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -118,13 +118,15 @@ static int16_t dos_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; - if ((uint16_t)joykey != NO_BTN && dos->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && dos->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(dos->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(dos->joypad->axis( + joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; if (dos_keyboard_port_input_pressed(binds[port], id)) diff --git a/input/drivers/gx_input.c b/input/drivers/gx_input.c index c0f18757e3..bd2fa77a5b 100644 --- a/input/drivers/gx_input.c +++ b/input/drivers/gx_input.c @@ -135,7 +135,7 @@ static int16_t gx_mouse_state(gx_input_t *gx, unsigned id, uint16_t joy_idx) #endif static int16_t gx_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) @@ -156,16 +156,18 @@ static int16_t gx_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; - if ((uint16_t)joykey != NO_BTN && gx->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && gx->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(gx->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(gx->joypad->axis( + joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -178,13 +180,14 @@ static int16_t gx_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; - if ((uint16_t)joykey != NO_BTN && gx->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && gx->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(gx->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(gx->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } break; diff --git a/input/drivers/linuxraw_input.c b/input/drivers/linuxraw_input.c index c8389f0db5..051c000769 100644 --- a/input/drivers/linuxraw_input.c +++ b/input/drivers/linuxraw_input.c @@ -107,7 +107,7 @@ static int16_t linuxraw_analog_pressed(linuxraw_input_t *linuxraw, } static int16_t linuxraw_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) { @@ -124,9 +124,9 @@ static int16_t linuxraw_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; if ((binds[port]->valid && linuxraw->state[rarch_keysym_lut[ @@ -137,12 +137,14 @@ static int16_t linuxraw_input_state(void *data, continue; } - if ((uint16_t)joykey != NO_BTN && linuxraw->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && linuxraw->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(linuxraw->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(linuxraw->joypad->axis( + joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -155,17 +157,17 @@ static int16_t linuxraw_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; if (((id < RARCH_BIND_LIST_END) && binds[port]->valid && linuxraw->state[rarch_keysym_lut[(enum retro_key)binds[port][id].key]] )) return true; - if ((uint16_t)joykey != NO_BTN && linuxraw->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && linuxraw->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(linuxraw->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(linuxraw->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } break; diff --git a/input/drivers/ps2_input.c b/input/drivers/ps2_input.c index 18f9164d35..a9df21b12f 100644 --- a/input/drivers/ps2_input.c +++ b/input/drivers/ps2_input.c @@ -42,7 +42,7 @@ static void ps2_input_poll(void *data) } static int16_t ps2_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) @@ -60,16 +60,18 @@ static int16_t ps2_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; - if ((uint16_t)joykey != NO_BTN && ps2->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && ps2->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(ps2->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(ps2->joypad->axis( + joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -82,13 +84,14 @@ static int16_t ps2_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; - if ((uint16_t)joykey != NO_BTN && ps2->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && ps2->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(ps2->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(ps2->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } break; diff --git a/input/drivers/ps3_input.c b/input/drivers/ps3_input.c index 8a8846ec42..7e7adb8ee7 100644 --- a/input/drivers/ps3_input.c +++ b/input/drivers/ps3_input.c @@ -97,7 +97,7 @@ static int16_t ps3_mouse_device_state(ps3_input_t *ps3, #endif static int16_t ps3_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) @@ -118,16 +118,18 @@ static int16_t ps3_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; - if ((uint16_t)joykey != NO_BTN && ps3->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && ps3->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - else if (((float)abs(ps3->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + else if (((float)abs(ps3->joypad->axis( + joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -140,13 +142,14 @@ static int16_t ps3_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; - if ((uint16_t)joykey != NO_BTN && ps3->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && ps3->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(ps3->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(ps3->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } break; diff --git a/input/drivers/ps4_input.c b/input/drivers/ps4_input.c index 4d83efec24..89b60f912e 100644 --- a/input/drivers/ps4_input.c +++ b/input/drivers/ps4_input.c @@ -46,7 +46,7 @@ static void ps4_input_poll(void *data) } static int16_t ps4_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) @@ -64,16 +64,17 @@ static int16_t ps4_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; - if ((uint16_t)joykey != NO_BTN && ps4->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && ps4->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(ps4->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(ps4->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -86,13 +87,14 @@ static int16_t ps4_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; - if ((uint16_t)joykey != NO_BTN && ps4->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && ps4->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(ps4->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(ps4->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } break; diff --git a/input/drivers/psp_input.c b/input/drivers/psp_input.c index 8f9958f565..c0cf6ad31c 100644 --- a/input/drivers/psp_input.c +++ b/input/drivers/psp_input.c @@ -299,7 +299,7 @@ static int16_t psp_input_mouse_state(psp_input_t *psp, unsigned id, bool screen) static int16_t psp_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) @@ -322,16 +322,16 @@ static int16_t psp_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; - if ((uint16_t)joykey != NO_BTN && psp->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && psp->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(psp->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(psp->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -344,13 +344,13 @@ static int16_t psp_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; - if ((uint16_t)joykey != NO_BTN && psp->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && psp->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(psp->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(psp->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } break; diff --git a/input/drivers/qnx_input.c b/input/drivers/qnx_input.c index 3627bc1c47..4b642f4a80 100644 --- a/input/drivers/qnx_input.c +++ b/input/drivers/qnx_input.c @@ -727,7 +727,7 @@ static bool qnx_keyboard_pressed(qnx_input_t *qnx, unsigned id) } static bool qnx_is_pressed(qnx_input_t *qnx, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind *binds, unsigned port, unsigned id) { @@ -745,13 +745,14 @@ static bool qnx_is_pressed(qnx_input_t *qnx, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[id].joykey != NO_BTN) - ? binds[id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[id].joyaxis != AXIS_NONE) - ? binds[id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[id].joyaxis : joypad_info->auto_binds[id].joyaxis; - if ((uint16_t)joykey != NO_BTN && qnx->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && qnx->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(qnx->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(qnx->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } @@ -791,7 +792,7 @@ static int16_t qnx_pointer_input_state(qnx_input_t *qnx, } static int16_t qnx_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) { diff --git a/input/drivers/rwebinput_input.c b/input/drivers/rwebinput_input.c index ce68c1d2ed..f1b6ee4c4d 100644 --- a/input/drivers/rwebinput_input.c +++ b/input/drivers/rwebinput_input.c @@ -460,7 +460,8 @@ static int16_t rwebinput_mouse_state(rwebinput_mouse_state_t *mouse, } static bool rwebinput_is_pressed(rwebinput_input_t *rwebinput, - rarch_joypad_info_t joypad_info, const struct retro_keybind *binds, + rarch_joypad_info_t *joypad_info, + const struct retro_keybind *binds, unsigned port, unsigned id) { if (id < RARCH_BIND_LIST_END) @@ -476,16 +477,16 @@ static bool rwebinput_is_pressed(rwebinput_input_t *rwebinput, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[id].joykey != NO_BTN) - ? binds[id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[id].joyaxis != AXIS_NONE) - ? binds[id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[id].joyaxis : joypad_info->auto_binds[id].joyaxis; if (port == 0 && !!rwebinput_mouse_state(&rwebinput->mouse, bind->mbutton, false)) return true; - if ((uint16_t)joykey != NO_BTN && rwebinput->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && rwebinput->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(rwebinput->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(rwebinput->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } } @@ -494,7 +495,7 @@ static bool rwebinput_is_pressed(rwebinput_input_t *rwebinput, } static int16_t rwebinput_analog_pressed(rwebinput_input_t *rwebinput, - rarch_joypad_info_t joypad_info, const struct retro_keybind *binds, + rarch_joypad_info_t *joypad_info, const struct retro_keybind *binds, unsigned idx, unsigned id) { int16_t pressed_minus = 0, pressed_plus = 0; @@ -512,7 +513,7 @@ static int16_t rwebinput_analog_pressed(rwebinput_input_t *rwebinput, } static int16_t rwebinput_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) { diff --git a/input/drivers/sdl_input.c b/input/drivers/sdl_input.c index 7a074c24be..4aca02949c 100644 --- a/input/drivers/sdl_input.c +++ b/input/drivers/sdl_input.c @@ -91,15 +91,15 @@ static int16_t sdl_analog_pressed(sdl_input_t *sdl, const struct retro_keybind * } static int16_t sdl_joypad_device_state(sdl_input_t *sdl, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind *binds, unsigned port, unsigned id, enum input_device_type *device) { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[id].joykey != NO_BTN) - ? binds[id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[id].joyaxis != AXIS_NONE) - ? binds[id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[id].joyaxis : joypad_info->auto_binds[id].joyaxis; if ((binds[id].key < RETROK_LAST) && sdl_key_pressed(binds[id].key)) { @@ -107,13 +107,14 @@ static int16_t sdl_joypad_device_state(sdl_input_t *sdl, return 1; } - if ((uint16_t)joykey != NO_BTN && sdl->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && sdl->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) { *device = INPUT_DEVICE_TYPE_JOYPAD; return 1; } - if (((float)abs(sdl->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(sdl->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { *device = INPUT_DEVICE_TYPE_JOYPAD; return 1; @@ -218,7 +219,7 @@ static int16_t sdl_lightgun_device_state(sdl_input_t *sdl, unsigned id) } static int16_t sdl_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) { diff --git a/input/drivers/switch_input.c b/input/drivers/switch_input.c index baa36f5d7f..2a394683ea 100644 --- a/input/drivers/switch_input.c +++ b/input/drivers/switch_input.c @@ -370,7 +370,7 @@ static int16_t switch_input_mouse_state(switch_input_t *sw, unsigned id, bool sc #endif static int16_t switch_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) @@ -391,16 +391,16 @@ static int16_t switch_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; - if ((uint16_t)joykey != NO_BTN && sw->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && sw->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(sw->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(sw->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -413,12 +413,12 @@ static int16_t switch_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; - if ((uint16_t)joykey != NO_BTN && sw->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; + if ((uint16_t)joykey != NO_BTN && sw->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(sw->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(sw->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } break; diff --git a/input/drivers/udev_input.c b/input/drivers/udev_input.c index 0dd54091d3..73f26100ab 100644 --- a/input/drivers/udev_input.c +++ b/input/drivers/udev_input.c @@ -930,7 +930,7 @@ static bool udev_mouse_button_pressed( } static bool udev_is_pressed(udev_input_t *udev, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind *binds, unsigned port, unsigned id) { @@ -944,15 +944,16 @@ static bool udev_is_pressed(udev_input_t *udev, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[id].joykey != NO_BTN) - ? binds[id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[id].joyaxis != AXIS_NONE) - ? binds[id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[id].joyaxis : joypad_info->auto_binds[id].joyaxis; if (udev_mouse_button_pressed(udev, port, bind->mbutton)) return true; - if ((uint16_t)joykey != NO_BTN && udev->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && udev->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(udev->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(udev->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } @@ -1003,7 +1004,7 @@ static int16_t udev_pointer_state(udev_input_t *udev, } static int16_t udev_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) { diff --git a/input/drivers/uwp_input.c b/input/drivers/uwp_input.c index 3b75d62c85..ff263f837f 100644 --- a/input/drivers/uwp_input.c +++ b/input/drivers/uwp_input.c @@ -107,7 +107,7 @@ static void uwp_input_grab_mouse(void *data, bool state) } static bool uwp_pressed_joypad(uwp_input_t *uwp, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind *binds, unsigned port, unsigned id) { @@ -123,15 +123,16 @@ static bool uwp_pressed_joypad(uwp_input_t *uwp, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[id].joykey != NO_BTN) - ? binds[id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[id].joyaxis != AXIS_NONE) - ? binds[id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[id].joyaxis : joypad_info->auto_binds[id].joyaxis; if (uwp_mouse_state(port, bind->mbutton, false)) return true; - if ((uint16_t)joykey != NO_BTN && uwp->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && uwp->joypad->button( + joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(uwp->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(uwp->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } @@ -139,7 +140,7 @@ static bool uwp_pressed_joypad(uwp_input_t *uwp, } static int16_t uwp_pressed_analog(uwp_input_t *uwp, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind *binds, unsigned port, unsigned idx, unsigned id) { @@ -170,7 +171,7 @@ static int16_t uwp_pressed_analog(uwp_input_t *uwp, } static int16_t uwp_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned index, unsigned id) diff --git a/input/drivers/wayland_input.c b/input/drivers/wayland_input.c index c3fa6969c2..e9134878fd 100644 --- a/input/drivers/wayland_input.c +++ b/input/drivers/wayland_input.c @@ -281,7 +281,7 @@ static int16_t input_wl_touch_state(input_ctx_wayland_data_t *wl, } static int16_t input_wl_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) { @@ -298,9 +298,9 @@ static int16_t input_wl_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; if (BIT_GET(wl->key_state, rarch_keysym_lut[binds[port][i].key]) ) { ret |= (1 << i); @@ -309,12 +309,12 @@ static int16_t input_wl_state(void *data, if (binds[port]) { - if ((uint16_t)joykey != NO_BTN && wl->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && wl->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(wl->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(wl->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -328,9 +328,9 @@ static int16_t input_wl_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; if (id < RARCH_BIND_LIST_END) if (BIT_GET(wl->key_state, rarch_keysym_lut[binds[port][id].key])) @@ -338,9 +338,9 @@ static int16_t input_wl_state(void *data, if (binds[port]) { - if ((uint16_t)joykey != NO_BTN && wl->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && wl->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(wl->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(wl->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } } diff --git a/input/drivers/wiiu_input.c b/input/drivers/wiiu_input.c index 4290bbc247..06bb6353d4 100644 --- a/input/drivers/wiiu_input.c +++ b/input/drivers/wiiu_input.c @@ -123,7 +123,7 @@ static void wiiu_input_poll(void *data) } static int16_t wiiu_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) @@ -145,16 +145,16 @@ static int16_t wiiu_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; - if ((uint16_t)joykey != NO_BTN && wiiu->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && wiiu->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(wiiu->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(wiiu->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -167,13 +167,13 @@ static int16_t wiiu_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; - if ((uint16_t)joykey != NO_BTN && wiiu->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && wiiu->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(wiiu->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(wiiu->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } break; diff --git a/input/drivers/winraw_input.c b/input/drivers/winraw_input.c index e9e7db902e..ef980568a3 100644 --- a/input/drivers/winraw_input.c +++ b/input/drivers/winraw_input.c @@ -393,7 +393,7 @@ static bool winraw_mouse_button_pressed( } static bool winraw_is_pressed(winraw_input_t *wr, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind *binds, unsigned port, unsigned id) { @@ -406,15 +406,15 @@ static bool winraw_is_pressed(winraw_input_t *wr, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[id].joykey != NO_BTN) - ? binds[id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[id].joyaxis != AXIS_NONE) - ? binds[id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[id].joyaxis : joypad_info->auto_binds[id].joyaxis; if (winraw_mouse_button_pressed(wr, port, bind->mbutton)) return true; if ((uint16_t)joykey != NO_BTN && - wr->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + wr->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(wr->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(wr->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } @@ -698,7 +698,7 @@ static void winraw_poll(void *d) } static int16_t winraw_input_state(void *d, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned index, unsigned id) { diff --git a/input/drivers/x11_input.c b/input/drivers/x11_input.c index 7d5970c21b..dd1cdde3c6 100644 --- a/input/drivers/x11_input.c +++ b/input/drivers/x11_input.c @@ -115,7 +115,7 @@ static bool x_mouse_button_pressed( } static bool x_is_pressed(x11_input_t *x11, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind *binds, unsigned port, unsigned id) { @@ -129,16 +129,16 @@ static bool x_is_pressed(x11_input_t *x11, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[id].joykey != NO_BTN) - ? binds[id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[id].joyaxis != AXIS_NONE) - ? binds[id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[id].joyaxis : joypad_info->auto_binds[id].joyaxis; if (x_mouse_button_pressed(x11, port, bind->mbutton)) return true; if ((uint16_t)joykey != NO_BTN - && x11->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + && x11->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(x11->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(x11->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } @@ -299,7 +299,7 @@ static int16_t x_pointer_state(x11_input_t *x11, } static int16_t x_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned idx, unsigned id) { diff --git a/input/drivers/xdk_xinput_input.c b/input/drivers/xdk_xinput_input.c index 55982b82ba..5bfcdefec9 100644 --- a/input/drivers/xdk_xinput_input.c +++ b/input/drivers/xdk_xinput_input.c @@ -49,7 +49,7 @@ static void xdk_input_poll(void *data) } static int16_t xdk_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned index, unsigned id) @@ -71,16 +71,16 @@ static int16_t xdk_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][i].joykey != NO_BTN) - ? binds[port][i].joykey : joypad_info.auto_binds[i].joykey; + ? binds[port][i].joykey : joypad_info->auto_binds[i].joykey; const uint32_t joyaxis = (binds[port][i].joyaxis != AXIS_NONE) - ? binds[port][i].joyaxis : joypad_info.auto_binds[i].joyaxis; + ? binds[port][i].joyaxis : joypad_info->auto_binds[i].joyaxis; - if ((uint16_t)joykey != NO_BTN && xdk->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && xdk->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) { ret |= (1 << i); continue; } - if (((float)abs(xdk->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(xdk->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) { ret |= (1 << i); continue; @@ -93,13 +93,13 @@ static int16_t xdk_input_state(void *data, { /* Auto-binds are per joypad, not per user. */ const uint64_t joykey = (binds[port][id].joykey != NO_BTN) - ? binds[port][id].joykey : joypad_info.auto_binds[id].joykey; + ? binds[port][id].joykey : joypad_info->auto_binds[id].joykey; const uint32_t joyaxis = (binds[port][id].joyaxis != AXIS_NONE) - ? binds[port][id].joyaxis : joypad_info.auto_binds[id].joyaxis; + ? binds[port][id].joyaxis : joypad_info->auto_binds[id].joyaxis; - if ((uint16_t)joykey != NO_BTN && xdk->joypad->button(joypad_info.joy_idx, (uint16_t)joykey)) + if ((uint16_t)joykey != NO_BTN && xdk->joypad->button(joypad_info->joy_idx, (uint16_t)joykey)) return true; - if (((float)abs(xdk->joypad->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold) + if (((float)abs(xdk->joypad->axis(joypad_info->joy_idx, joyaxis)) / 0x8000) > joypad_info->axis_threshold) return true; } break; diff --git a/input/drivers/xenon360_input.c b/input/drivers/xenon360_input.c index 85297f8372..c491fee52d 100644 --- a/input/drivers/xenon360_input.c +++ b/input/drivers/xenon360_input.c @@ -59,7 +59,7 @@ static void xenon360_input_poll(void *data) } static int16_t xenon360_input_state(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **binds, bool port, unsigned device, unsigned idx, unsigned id) diff --git a/input/input_driver.h b/input/input_driver.h index 895f141386..5ced262273 100644 --- a/input/input_driver.h +++ b/input/input_driver.h @@ -165,7 +165,7 @@ struct input_driver * Analog values have same range as a signed 16-bit integer. */ int16_t (*input_state)(void *data, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, const struct retro_keybind **retro_keybinds, unsigned port, unsigned device, unsigned index, unsigned id); @@ -344,7 +344,7 @@ const input_device_driver_t *input_joypad_init_driver( * Returns: analog value on success, otherwise 0. **/ int16_t input_joypad_analog(const input_device_driver_t *driver, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, unsigned port, unsigned idx, unsigned ident, const struct retro_keybind *binds); diff --git a/menu/widgets/menu_input_bind_dialog.c b/menu/widgets/menu_input_bind_dialog.c index 8281fe0083..0e7d3b95ba 100644 --- a/menu/widgets/menu_input_bind_dialog.c +++ b/menu/widgets/menu_input_bind_dialog.c @@ -271,7 +271,7 @@ static void menu_input_key_bind_poll_bind_state( joypad_info.axis_threshold = 0.0f; state->skip = timed_out || input_ptr->input_state(input_data, - joypad_info, + &joypad_info, NULL, 0, RETRO_DEVICE_KEYBOARD, 0, RETROK_RETURN); diff --git a/retroarch.c b/retroarch.c index db01fd257a..89f16627cd 100644 --- a/retroarch.c +++ b/retroarch.c @@ -13424,16 +13424,16 @@ static void input_poll_overlay(input_overlay_t *ol, float opacity, RARCH_DEVICE_POINTER_SCREEN : RETRO_DEVICE_POINTER; for (i = 0; - input_ptr->input_state(input_data, joypad_info, + input_ptr->input_state(input_data, &joypad_info, NULL, 0, device, i, RETRO_DEVICE_ID_POINTER_PRESSED); i++) { input_overlay_state_t polled_data; - int16_t x = input_ptr->input_state(input_data, joypad_info, + int16_t x = input_ptr->input_state(input_data, &joypad_info, NULL, 0, device, i, RETRO_DEVICE_ID_POINTER_X); - int16_t y = input_ptr->input_state(input_data, joypad_info, + int16_t y = input_ptr->input_state(input_data, &joypad_info, NULL, 0, device, i, RETRO_DEVICE_ID_POINTER_Y); @@ -13845,7 +13845,7 @@ static void input_driver_poll(void) continue; input_driver_turbo_btns.frame_enable[i] = current_input->input_state( - current_input_data, joypad_info[i], libretro_input_binds, + current_input_data, &joypad_info[i], libretro_input_binds, (unsigned)i, RETRO_DEVICE_JOYPAD, 0, RARCH_TURBO_ENABLE); } @@ -13882,7 +13882,8 @@ static void input_driver_poll(void) { int16_t ret = 0; if (current_input && current_input->input_state) - ret = current_input->input_state(current_input_data, joypad_info[i], + ret = current_input->input_state(current_input_data, + &joypad_info[i], libretro_input_binds, (unsigned)i, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_MASK); @@ -13891,7 +13892,7 @@ static void input_driver_poll(void) if (ret & (1 << k)) { int16_t val = input_joypad_analog( - joypad_driver, joypad_info[i], (unsigned)i, + joypad_driver, &joypad_info[i], (unsigned)i, RETRO_DEVICE_INDEX_ANALOG_BUTTON, k, libretro_input_binds[i]); BIT256_SET_PTR(p_new_state, k); @@ -13907,7 +13908,7 @@ static void input_driver_poll(void) { unsigned offset = 0 + (k * 4) + (j * 2); int16_t val = input_joypad_analog(joypad_driver, - joypad_info[i], (unsigned)i, k, j, libretro_input_binds[i]); + &joypad_info[i], (unsigned)i, k, j, libretro_input_binds[i]); if (val >= 0) p_new_state->analogs[offset] = val; @@ -14395,7 +14396,7 @@ static int16_t input_state(unsigned port, unsigned device, device &= RETRO_DEVICE_MASK; ret = current_input->input_state( - current_input_data, joypad_info, + current_input_data, &joypad_info, libretro_input_binds, port, device, idx, id); if ( (input_driver_flushing_input == 0) @@ -14605,7 +14606,7 @@ int16_t menu_input_read_mouse_hw(enum menu_input_mouse_hw_id id) break; } - return current_input->input_state(current_input_data, joypad_info, + return current_input->input_state(current_input_data, &joypad_info, NULL, 0, device, 0, type); } @@ -14789,7 +14790,7 @@ static void menu_input_get_touchscreen_hw_state( /* X pos */ pointer_x = current_input->input_state( - current_input_data, joypad_info, binds, + current_input_data, &joypad_info, binds, 0, pointer_device, 0, RETRO_DEVICE_ID_POINTER_X); hw_state->x = ((pointer_x + 0x7fff) * (int)fb_width) / 0xFFFF; @@ -14813,7 +14814,7 @@ static void menu_input_get_touchscreen_hw_state( /* Y pos */ pointer_y = current_input->input_state( - current_input_data, joypad_info, binds, + current_input_data, &joypad_info, binds, 0, pointer_device, 0, RETRO_DEVICE_ID_POINTER_Y); hw_state->y = ((pointer_y + 0x7fff) * (int)fb_height) / 0xFFFF; @@ -14833,7 +14834,7 @@ static void menu_input_get_touchscreen_hw_state( /* Select (touch screen contact) * Note that releasing select also counts as activity */ hw_state->select_pressed = (bool)current_input->input_state( - current_input_data, joypad_info, binds, + current_input_data, &joypad_info, binds, 0, pointer_device, 0, RETRO_DEVICE_ID_POINTER_PRESSED); if (hw_state->select_pressed || (hw_state->select_pressed != last_select_pressed)) hw_state->active = true; @@ -14842,7 +14843,7 @@ static void menu_input_get_touchscreen_hw_state( /* Cancel (touch screen 'back' - don't know what is this, but whatever...) * Note that releasing cancel also counts as activity */ hw_state->cancel_pressed = (bool)current_input->input_state( - current_input_data, joypad_info, binds, + current_input_data, &joypad_info, binds, 0, pointer_device, 0, RARCH_DEVICE_ID_POINTER_BACK); if (hw_state->cancel_pressed || (hw_state->cancel_pressed != last_cancel_pressed)) hw_state->active = true; @@ -15965,7 +15966,7 @@ static void input_menu_keys_pressed(input_bits_t *p_new_state, const struct retro_keybind *htkey = &input_config_binds[port][RARCH_ENABLE_HOTKEY]; if (htkey->valid - && current_input->input_state(current_input_data, joypad_info, + && current_input->input_state(current_input_data, &joypad_info, &binds[0], port, RETRO_DEVICE_JOYPAD, 0, RARCH_ENABLE_HOTKEY)) { input_driver_block_libretro_input = true; @@ -15988,7 +15989,7 @@ static void input_menu_keys_pressed(input_bits_t *p_new_state, joypad_info.auto_binds = input_autoconf_binds[joypad_info.joy_idx]; joypad_info.axis_threshold = input_driver_axis_threshold; ret[port] = current_input->input_state(current_input_data, - joypad_info, &binds[0], port, RETRO_DEVICE_JOYPAD, 0, + &joypad_info, &binds[0], port, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_MASK); } @@ -16030,7 +16031,7 @@ static void input_menu_keys_pressed(input_bits_t *p_new_state, joypad_info.auto_binds = input_autoconf_binds[joypad_info.joy_idx]; joypad_info.axis_threshold = input_driver_axis_threshold; - if (current_input->input_state(current_input_data, joypad_info, + if (current_input->input_state(current_input_data, &joypad_info, &binds[0], port, RETRO_DEVICE_JOYPAD, 0, i)) { bit_pressed = true; @@ -16096,7 +16097,7 @@ static void input_menu_keys_pressed(input_bits_t *p_new_state, for (i = 0; i < ARRAY_SIZE(ids); i++) { if (current_input->input_state(current_input_data, - joypad_info, binds, 0, + &joypad_info, binds, 0, RETRO_DEVICE_KEYBOARD, 0, ids[i][0])) BIT256_SET_PTR(p_new_state, ids[i][1]); } @@ -16136,7 +16137,7 @@ static void input_keys_pressed(input_bits_t *p_new_state) if ( enable_hotkey && enable_hotkey->valid && current_input->input_state( - current_input_data, joypad_info, + current_input_data, &joypad_info, &binds, port, RETRO_DEVICE_JOYPAD, 0, RARCH_ENABLE_HOTKEY)) input_driver_block_libretro_input = true; @@ -16156,7 +16157,7 @@ static void input_keys_pressed(input_bits_t *p_new_state) if (check_input_driver_block_hotkey( focus_normal, focus_binds_auto)) { - if (current_input->input_state(current_input_data, joypad_info, + if (current_input->input_state(current_input_data, &joypad_info, &binds, port, RETRO_DEVICE_JOYPAD, 0, RARCH_GAME_FOCUS_TOGGLE)) input_driver_block_hotkey = false; @@ -16167,7 +16168,7 @@ static void input_keys_pressed(input_bits_t *p_new_state) /* Check the libretro input first */ { int16_t ret = current_input->input_state(current_input_data, - joypad_info, &binds, 0, RETRO_DEVICE_JOYPAD, 0, + &joypad_info, &binds, 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_MASK); for (i = 0; i < RARCH_FIRST_META_KEY; i++) { @@ -16184,7 +16185,7 @@ static void input_keys_pressed(input_bits_t *p_new_state) for (i = RARCH_FIRST_META_KEY; i < RARCH_BIND_LIST_END; i++) { bool bit_pressed = !input_driver_block_hotkey && binds[i].valid - && current_input->input_state(current_input_data, joypad_info, + && current_input->input_state(current_input_data, &joypad_info, &binds, 0, RETRO_DEVICE_JOYPAD, 0, i); if ( bit_pressed || BIT64_GET(lifecycle_state, i) @@ -16527,7 +16528,7 @@ bool input_joypad_set_rumble(const input_device_driver_t *drv, * Returns: analog value on success, otherwise 0. **/ int16_t input_joypad_analog(const input_device_driver_t *drv, - rarch_joypad_info_t joypad_info, + rarch_joypad_info_t *joypad_info, unsigned port, unsigned idx, unsigned ident, const struct retro_keybind *binds) { @@ -16546,7 +16547,7 @@ int16_t input_joypad_analog(const input_device_driver_t *drv, return 0; axis = (bind->joyaxis == AXIS_NONE) - ? joypad_info.auto_binds[ident].joyaxis + ? joypad_info->auto_binds[ident].joyaxis : bind->joyaxis; /* Analog button. */ @@ -16554,18 +16555,20 @@ int16_t input_joypad_analog(const input_device_driver_t *drv, { float normal_mag = 0.0f; if (configuration_settings->floats.input_analog_deadzone) - normal_mag = fabs((1.0f / 0x7fff) * drv->axis(joypad_info.joy_idx, axis)); - res = abs(input_joypad_axis(drv, joypad_info.joy_idx, axis, normal_mag)); + normal_mag = fabs((1.0f / 0x7fff) * drv->axis( + joypad_info->joy_idx, axis)); + res = abs(input_joypad_axis(drv, + joypad_info->joy_idx, axis, normal_mag)); } /* If the result is zero, it's got a digital button * attached to it instead */ if (res == 0) { uint16_t key = (bind->joykey == NO_BTN) - ? joypad_info.auto_binds[ident].joykey + ? joypad_info->auto_binds[ident].joykey : bind->joykey; - if (drv->button(joypad_info.joy_idx, key)) + if (drv->button(joypad_info->joy_idx, key)) res = 0x7fff; } } @@ -16615,10 +16618,10 @@ int16_t input_joypad_analog(const input_device_driver_t *drv, if (drv->axis) { uint32_t axis_minus = (bind_minus->joyaxis == AXIS_NONE) - ? joypad_info.auto_binds[ident_minus].joyaxis + ? joypad_info->auto_binds[ident_minus].joyaxis : bind_minus->joyaxis; uint32_t axis_plus = (bind_plus->joyaxis == AXIS_NONE) - ? joypad_info.auto_binds[ident_plus].joyaxis + ? joypad_info->auto_binds[ident_plus].joyaxis : bind_plus->joyaxis; int16_t pressed_minus = 0; int16_t pressed_plus = 0; @@ -16629,32 +16632,32 @@ int16_t input_joypad_analog(const input_device_driver_t *drv, if (configuration_settings->floats.input_analog_deadzone) { uint32_t x_axis_minus = (bind_x_minus->joyaxis == AXIS_NONE) - ? joypad_info.auto_binds[ident_x_minus].joyaxis + ? joypad_info->auto_binds[ident_x_minus].joyaxis : bind_x_minus->joyaxis; uint32_t x_axis_plus = (bind_x_plus->joyaxis == AXIS_NONE) - ? joypad_info.auto_binds[ident_x_plus].joyaxis + ? joypad_info->auto_binds[ident_x_plus].joyaxis : bind_x_plus->joyaxis; uint32_t y_axis_minus = (bind_y_minus->joyaxis == AXIS_NONE) - ? joypad_info.auto_binds[ident_y_minus].joyaxis + ? joypad_info->auto_binds[ident_y_minus].joyaxis : bind_y_minus->joyaxis; uint32_t y_axis_plus = (bind_y_plus->joyaxis == AXIS_NONE) - ? joypad_info.auto_binds[ident_y_plus].joyaxis + ? joypad_info->auto_binds[ident_y_plus].joyaxis : bind_y_plus->joyaxis; /* normalized magnitude for radial scaled analog deadzone */ float x = drv->axis( - joypad_info.joy_idx, x_axis_plus) - + drv->axis(joypad_info.joy_idx, x_axis_minus); + joypad_info->joy_idx, x_axis_plus) + + drv->axis(joypad_info->joy_idx, x_axis_minus); float y = drv->axis( - joypad_info.joy_idx, y_axis_plus) - + drv->axis(joypad_info.joy_idx, y_axis_minus); + joypad_info->joy_idx, y_axis_plus) + + drv->axis(joypad_info->joy_idx, y_axis_minus); normal_mag = (1.0f / 0x7fff) * sqrt(x * x + y * y); } pressed_minus = abs( - input_joypad_axis(drv, joypad_info.joy_idx, + input_joypad_axis(drv, joypad_info->joy_idx, axis_minus, normal_mag)); pressed_plus = abs( - input_joypad_axis(drv, joypad_info.joy_idx, + input_joypad_axis(drv, joypad_info->joy_idx, axis_plus, normal_mag)); res = pressed_plus - pressed_minus; } @@ -16662,14 +16665,14 @@ int16_t input_joypad_analog(const input_device_driver_t *drv, if (res == 0) { uint16_t key_minus = (bind_minus->joykey == NO_BTN) - ? joypad_info.auto_binds[ident_minus].joykey + ? joypad_info->auto_binds[ident_minus].joykey : bind_minus->joykey; uint16_t key_plus = (bind_plus->joykey == NO_BTN) - ? joypad_info.auto_binds[ident_plus].joykey + ? joypad_info->auto_binds[ident_plus].joykey : bind_plus->joykey; - int16_t digital_left = drv->button(joypad_info.joy_idx, key_minus) + int16_t digital_left = drv->button(joypad_info->joy_idx, key_minus) ? -0x7fff : 0; - int16_t digital_right = drv->button(joypad_info.joy_idx, key_plus) + int16_t digital_right = drv->button(joypad_info->joy_idx, key_plus) ? 0x7fff : 0; return digital_right + digital_left; @@ -16704,7 +16707,7 @@ bool input_mouse_button_raw(unsigned port, unsigned id) joypad_info.auto_binds = input_autoconf_binds[joypad_info.joy_idx]; if (current_input->input_state(current_input_data, - joypad_info, libretro_input_binds, port, RETRO_DEVICE_MOUSE, 0, id)) + &joypad_info, libretro_input_binds, port, RETRO_DEVICE_MOUSE, 0, id)) return true; return false; }