This commit is contained in:
twinaphex 2020-06-23 18:05:07 +02:00
parent c9f634e85d
commit a48af59c92
2 changed files with 33 additions and 37 deletions

View File

@ -198,10 +198,6 @@ void menu_input_set_pointer_selection(unsigned selection);
* calling populate entries) */ * calling populate entries) */
void menu_input_set_pointer_y_accel(float y_accel); void menu_input_set_pointer_y_accel(float y_accel);
/* Inhibits pointer 'select' and 'cancel' actions
* (until the next time 'select'/'cancel' are released) */
void menu_input_set_pointer_inhibit(bool inhibit);
RETRO_END_DECLS RETRO_END_DECLS
#endif #endif

View File

@ -2806,6 +2806,7 @@ static void menu_input_post_iterate(
struct rarch_state *p_rarch, struct rarch_state *p_rarch,
int *ret, unsigned action, int *ret, unsigned action,
retro_time_t current_time); retro_time_t current_time);
static void menu_input_set_pointer_inhibit(bool inhibit);
static void menu_input_reset(struct rarch_state *p_rarch); static void menu_input_reset(struct rarch_state *p_rarch);
/* TODO/FIXME - public global variables */ /* TODO/FIXME - public global variables */
@ -22585,49 +22586,46 @@ static void input_driver_poll(void)
case RETRO_DEVICE_JOYPAD: case RETRO_DEVICE_JOYPAD:
case RETRO_DEVICE_ANALOG: case RETRO_DEVICE_ANALOG:
BIT256_CLEAR_ALL_PTR(&current_inputs); BIT256_CLEAR_ALL_PTR(&current_inputs);
if (joypad_driver)
{ {
unsigned k, j; unsigned k, j;
int16_t ret = p_rarch->current_input->input_state(
p_rarch->current_input_data,
&joypad_info[i],
p_rarch->libretro_input_binds,
(unsigned)i, RETRO_DEVICE_JOYPAD,
0, RETRO_DEVICE_ID_JOYPAD_MASK);
if (joypad_driver) for (k = 0; k < RARCH_FIRST_CUSTOM_BIND; k++)
{ {
int16_t ret = p_rarch->current_input->input_state( if (ret & (1 << k))
p_rarch->current_input_data,
&joypad_info[i],
p_rarch->libretro_input_binds,
(unsigned)i, RETRO_DEVICE_JOYPAD,
0, RETRO_DEVICE_ID_JOYPAD_MASK);
for (k = 0; k < RARCH_FIRST_CUSTOM_BIND; k++)
{ {
if (ret & (1 << k)) int16_t val = input_joypad_analog(
{ joypad_driver, &joypad_info[i], (unsigned)i,
int16_t val = input_joypad_analog( RETRO_DEVICE_INDEX_ANALOG_BUTTON, k,
joypad_driver, &joypad_info[i], (unsigned)i, p_rarch->libretro_input_binds[i]);
RETRO_DEVICE_INDEX_ANALOG_BUTTON, k,
p_rarch->libretro_input_binds[i]);
BIT256_SET_PTR(p_new_state, k); BIT256_SET_PTR(p_new_state, k);
if (val) if (val)
p_new_state->analog_buttons[k] = val; p_new_state->analog_buttons[k] = val;
}
} }
}
for (k = 0; k < 2; k++) for (k = 0; k < 2; k++)
{
for (j = 0; j < 2; j++)
{ {
for (j = 0; j < 2; j++) unsigned offset = 0 + (k * 4) + (j * 2);
{ int16_t val = input_joypad_analog(
unsigned offset = 0 + (k * 4) + (j * 2); joypad_driver,
int16_t val = input_joypad_analog( &joypad_info[i], (unsigned)i, k, j,
joypad_driver, p_rarch->libretro_input_binds[i]);
&joypad_info[i], (unsigned)i, k, j,
p_rarch->libretro_input_binds[i]);
if (val >= 0) if (val >= 0)
p_new_state->analogs[offset] = val; p_new_state->analogs[offset] = val;
else else
p_new_state->analogs[offset+1] = val; p_new_state->analogs[offset+1] = val;
}
} }
} }
} }
@ -24019,7 +24017,9 @@ void menu_input_set_pointer_y_accel(float y_accel)
menu_input->pointer.y_accel = y_accel; menu_input->pointer.y_accel = y_accel;
} }
void menu_input_set_pointer_inhibit(bool inhibit) /* Inhibits pointer 'select' and 'cancel' actions
* (until the next time 'select'/'cancel' are released) */
static void menu_input_set_pointer_inhibit(bool inhibit)
{ {
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
menu_input_t *menu_input = &p_rarch->menu_input_state; menu_input_t *menu_input = &p_rarch->menu_input_state;