mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Don't pass joypad_info by value
This commit is contained in:
parent
c2ed8783ee
commit
26b3ccf2e5
@ -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;
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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))
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
91
retroarch.c
91
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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user