mirror of
https://github.com/libretro/RetroArch
synced 2025-04-03 10:21:31 +00:00
Rebase input_key_pressed/input_menu_keys_pressed
This commit is contained in:
parent
44324ec62f
commit
77df0ef3ae
@ -663,7 +663,10 @@ static INLINE bool input_keys_pressed_internal(unsigned i,
|
|||||||
*
|
*
|
||||||
* Returns: Input sample containg a mask of all pressed keys.
|
* Returns: Input sample containg a mask of all pressed keys.
|
||||||
*/
|
*/
|
||||||
uint64_t input_keys_pressed(void)
|
uint64_t input_keys_pressed(
|
||||||
|
uint64_t old_input,
|
||||||
|
uint64_t *last_input,
|
||||||
|
uint64_t *trigger_input)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
uint64_t ret = 0;
|
uint64_t ret = 0;
|
||||||
@ -707,6 +710,8 @@ uint64_t input_keys_pressed(void)
|
|||||||
ret |= (UINT64_C(1) << i);
|
ret |= (UINT64_C(1) << i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*trigger_input = ret & ~old_input;
|
||||||
|
*last_input = ret;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -723,7 +728,10 @@ uint64_t input_keys_pressed(void)
|
|||||||
*
|
*
|
||||||
* Returns: Input sample containg a mask of all pressed keys.
|
* Returns: Input sample containg a mask of all pressed keys.
|
||||||
*/
|
*/
|
||||||
uint64_t input_menu_keys_pressed(void)
|
uint64_t input_menu_keys_pressed(
|
||||||
|
uint64_t old_input,
|
||||||
|
uint64_t *last_input,
|
||||||
|
uint64_t *trigger_input)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
uint64_t ret = 0;
|
uint64_t ret = 0;
|
||||||
@ -733,7 +741,7 @@ uint64_t input_menu_keys_pressed(void)
|
|||||||
const struct retro_keybind *binds_auto = NULL;
|
const struct retro_keybind *binds_auto = NULL;
|
||||||
|
|
||||||
if (!current_input || !current_input_data)
|
if (!current_input || !current_input_data)
|
||||||
return ret;
|
goto end;
|
||||||
|
|
||||||
for (i = 0; i < settings->input.max_users; i++)
|
for (i = 0; i < settings->input.max_users; i++)
|
||||||
{
|
{
|
||||||
@ -776,7 +784,7 @@ uint64_t input_menu_keys_pressed(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (menu_input_dialog_get_display_kb())
|
if (menu_input_dialog_get_display_kb())
|
||||||
return ret;
|
goto end;
|
||||||
|
|
||||||
if (current_input->input_state(current_input_data, binds, 0,
|
if (current_input->input_state(current_input_data, binds, 0,
|
||||||
RETRO_DEVICE_KEYBOARD, 0, RETROK_RETURN))
|
RETRO_DEVICE_KEYBOARD, 0, RETROK_RETURN))
|
||||||
@ -840,6 +848,9 @@ uint64_t input_menu_keys_pressed(void)
|
|||||||
RETRO_DEVICE_KEYBOARD, 0, settings->input.binds[0][RARCH_FULLSCREEN_TOGGLE_KEY].key ))
|
RETRO_DEVICE_KEYBOARD, 0, settings->input.binds[0][RARCH_FULLSCREEN_TOGGLE_KEY].key ))
|
||||||
BIT64_SET(ret, RARCH_FULLSCREEN_TOGGLE_KEY);
|
BIT64_SET(ret, RARCH_FULLSCREEN_TOGGLE_KEY);
|
||||||
|
|
||||||
|
end:
|
||||||
|
*trigger_input = ret & ~old_input;
|
||||||
|
*last_input = ret;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -256,9 +256,15 @@ void input_poll(void);
|
|||||||
int16_t input_state(unsigned port, unsigned device,
|
int16_t input_state(unsigned port, unsigned device,
|
||||||
unsigned idx, unsigned id);
|
unsigned idx, unsigned id);
|
||||||
|
|
||||||
uint64_t input_keys_pressed(void);
|
uint64_t input_keys_pressed(
|
||||||
|
uint64_t old_input,
|
||||||
|
uint64_t *last_input,
|
||||||
|
uint64_t *trigger_input);
|
||||||
|
|
||||||
uint64_t input_menu_keys_pressed(void);
|
uint64_t input_menu_keys_pressed(
|
||||||
|
uint64_t old_input,
|
||||||
|
uint64_t *last_input,
|
||||||
|
uint64_t *trigger_input);
|
||||||
|
|
||||||
void *input_driver_get_data(void);
|
void *input_driver_get_data(void);
|
||||||
|
|
||||||
|
10
runloop.c
10
runloop.c
@ -1107,14 +1107,14 @@ int runloop_iterate(unsigned *sleep_ms)
|
|||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
retro_time_t current, target, to_sleep_ms;
|
retro_time_t current, target, to_sleep_ms;
|
||||||
|
uint64_t trigger_input = 0;
|
||||||
static uint64_t last_input = 0;
|
static uint64_t last_input = 0;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
uint64_t current_input = menu_driver_ctl(
|
|
||||||
RARCH_MENU_CTL_IS_ALIVE, NULL) ?
|
|
||||||
input_menu_keys_pressed() : input_keys_pressed();
|
|
||||||
uint64_t old_input = last_input;
|
uint64_t old_input = last_input;
|
||||||
uint64_t trigger_input = current_input & ~old_input;
|
uint64_t current_input =
|
||||||
last_input = current_input;
|
menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL) ?
|
||||||
|
input_menu_keys_pressed(old_input, &last_input, &trigger_input) :
|
||||||
|
input_keys_pressed (old_input, &last_input, &trigger_input);
|
||||||
|
|
||||||
if (runloop_frame_time.callback)
|
if (runloop_frame_time.callback)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user