diff --git a/input/input_driver.c b/input/input_driver.c index 81e121a7d0..b60da43f1d 100644 --- a/input/input_driver.c +++ b/input/input_driver.c @@ -216,9 +216,6 @@ retro_input_t input_driver_keys_pressed(void) retro_input_t ret = 0; driver_t *driver = driver_get_ptr(); const input_driver_t *input = input_get_ptr(driver); -#ifdef HAVE_OVERLAY - input_overlay_state_t *ol_state = input_overlay_get_state_ptr(); -#endif for (key = 0; key < RARCH_BIND_LIST_END; key++) { @@ -228,8 +225,7 @@ retro_input_t input_driver_keys_pressed(void) state = input->key_pressed(driver->input_data, key); #ifdef HAVE_OVERLAY - if (ol_state) - state = state || (ol_state->buttons & (1ULL << key)); + state = state || input_overlay_key_pressed(key); #endif #ifdef HAVE_COMMAND diff --git a/input/input_overlay.c b/input/input_overlay.c index d6622f6684..20e35b6dd4 100644 --- a/input/input_overlay.c +++ b/input/input_overlay.c @@ -1408,7 +1408,7 @@ void input_overlay_set_alpha_mod(input_overlay_t *ol, float mod) ol->iface->set_alpha(ol->iface_data, i, mod); } -bool input_overlay_is_alive(input_overlay_t *ol) +static bool input_overlay_is_alive(input_overlay_t *ol) { if (!ol) return false; @@ -1595,3 +1595,13 @@ void input_state_overlay(int16_t *ret, unsigned port, unsigned device, unsigned break; } } + +bool input_overlay_key_pressed(int key) +{ + input_overlay_state_t *ol_state = input_overlay_get_state_ptr(); + + if (!ol_state) + return false; + + return (ol_state->buttons & (1ULL << key)); +} diff --git a/input/input_overlay.h b/input/input_overlay.h index aacb0c4e0a..932961e187 100644 --- a/input/input_overlay.h +++ b/input/input_overlay.h @@ -228,8 +228,6 @@ void input_overlay_free_ptr(void); int input_overlay_new_ptr(void); -bool input_overlay_is_alive(input_overlay_t *ol); - enum overlay_status input_overlay_status(input_overlay_t *ol); /* @@ -244,6 +242,8 @@ void input_state_overlay(int16_t *ret, unsigned port, unsigned device, unsigned idx, unsigned id); +bool input_overlay_key_pressed(int key); + #ifdef __cplusplus } #endif