mirror of
https://github.com/libretro/RetroArch
synced 2025-02-28 22:13:51 +00:00
Move driver->osk_enable to input_driver.c
This commit is contained in:
parent
5b6641b077
commit
d4e88324ac
1
driver.h
1
driver.h
@ -217,7 +217,6 @@ typedef struct driver
|
||||
|
||||
bool camera_active;
|
||||
bool location_active;
|
||||
bool osk_enable;
|
||||
bool keyboard_linefeed_enable;
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
|
@ -82,6 +82,7 @@ struct turbo_buttons
|
||||
unsigned count;
|
||||
};
|
||||
|
||||
static bool main_osk_enabled;
|
||||
static bool input_data_own;
|
||||
static const input_driver_t *main_input;
|
||||
static void *main_input_data;
|
||||
@ -731,6 +732,14 @@ bool input_driver_ctl(enum rarch_input_ctl_state state, void *data)
|
||||
break;
|
||||
case RARCH_INPUT_CTL_OWNS_DRIVER:
|
||||
return input_data_own;
|
||||
case RARCH_INPUT_CTL_SET_OSK_ENABLED:
|
||||
main_osk_enabled = true;
|
||||
break;
|
||||
case RARCH_INPUT_CTL_UNSET_OSK_ENABLED:
|
||||
main_osk_enabled = false;
|
||||
break;
|
||||
case RARCH_INPUT_CTL_IS_OSK_ENABLED:
|
||||
return main_osk_enabled;
|
||||
case RARCH_INPUT_CTL_NONE:
|
||||
default:
|
||||
break;
|
||||
|
@ -68,7 +68,10 @@ enum rarch_input_ctl_state
|
||||
RARCH_INPUT_CTL_IS_NONBLOCK_STATE,
|
||||
RARCH_INPUT_CTL_SET_OWN_DRIVER,
|
||||
RARCH_INPUT_CTL_UNSET_OWN_DRIVER,
|
||||
RARCH_INPUT_CTL_OWNS_DRIVER
|
||||
RARCH_INPUT_CTL_OWNS_DRIVER,
|
||||
RARCH_INPUT_CTL_SET_OSK_ENABLED,
|
||||
RARCH_INPUT_CTL_UNSET_OSK_ENABLED,
|
||||
RARCH_INPUT_CTL_IS_OSK_ENABLED
|
||||
};
|
||||
|
||||
struct retro_keybind
|
||||
|
@ -35,6 +35,12 @@ struct input_keyboard_line
|
||||
void *userdata;
|
||||
};
|
||||
|
||||
static input_keyboard_line_t *g_keyboard_line;
|
||||
|
||||
static input_keyboard_press_t g_keyboard_press_cb;
|
||||
|
||||
static void *g_keyboard_press_data;
|
||||
|
||||
static void input_keyboard_line_toggle_osk(bool enable)
|
||||
{
|
||||
driver_t *driver = driver_get_ptr();
|
||||
@ -160,12 +166,6 @@ const char **input_keyboard_line_get_buffer(const input_keyboard_line_t *state)
|
||||
return (const char**)&state->buffer;
|
||||
}
|
||||
|
||||
static input_keyboard_line_t *g_keyboard_line;
|
||||
|
||||
static input_keyboard_press_t g_keyboard_press_cb;
|
||||
|
||||
static void *g_keyboard_press_data;
|
||||
|
||||
/**
|
||||
* input_keyboard_start_line:
|
||||
* @userdata : Userdata.
|
||||
|
@ -545,10 +545,9 @@ void input_overlay_free(void)
|
||||
/* task_data = overlay_task_data_t* */
|
||||
static void input_overlay_loaded(void *task_data, void *user_data, const char *err)
|
||||
{
|
||||
input_overlay_t *ol;
|
||||
overlay_task_data_t *data = (overlay_task_data_t*)task_data;
|
||||
settings_t *settings = config_get_ptr();
|
||||
input_overlay_t *ol;
|
||||
driver_t *driver = driver_get_ptr();
|
||||
|
||||
if (err)
|
||||
return;
|
||||
@ -556,7 +555,8 @@ static void input_overlay_loaded(void *task_data, void *user_data, const char *e
|
||||
/* We can't display when the menu is up */
|
||||
if (settings->input.overlay_hide_in_menu && menu_driver_alive())
|
||||
{
|
||||
if (!driver->osk_enable && settings->input.overlay_enable)
|
||||
if (!input_driver_ctl(RARCH_INPUT_CTL_IS_OSK_ENABLED, NULL)
|
||||
&& settings->input.overlay_enable)
|
||||
{
|
||||
size_t i;
|
||||
for (i = 0; i < data->size; i++)
|
||||
@ -587,7 +587,7 @@ static void input_overlay_loaded(void *task_data, void *user_data, const char *e
|
||||
overlay_ptr = ol;
|
||||
|
||||
input_overlay_load_active(settings->input.overlay_opacity);
|
||||
input_overlay_enable(driver->osk_enable ? settings->osk.enable : settings->input.overlay_enable);
|
||||
input_overlay_enable(input_driver_ctl(RARCH_INPUT_CTL_IS_OSK_ENABLED, NULL) ? settings->osk.enable : settings->input.overlay_enable);
|
||||
input_overlay_set_scale_factor(settings->input.overlay_scale);
|
||||
|
||||
ol->next_index = (ol->index + 1) % ol->size;
|
||||
|
12
runloop.c
12
runloop.c
@ -796,20 +796,20 @@ bool rarch_main_ctl(enum rarch_main_ctl_state state, void *data)
|
||||
|
||||
|
||||
#ifdef HAVE_OVERLAY
|
||||
static void rarch_main_iterate_linefeed_overlay(driver_t *driver,
|
||||
settings_t *settings)
|
||||
static void rarch_main_iterate_linefeed_overlay(driver_t *driver, settings_t *settings)
|
||||
{
|
||||
static char prev_overlay_restore = false;
|
||||
bool osk_enable = input_driver_ctl(RARCH_INPUT_CTL_IS_OSK_ENABLED, NULL);
|
||||
|
||||
if (driver->osk_enable && !driver->keyboard_linefeed_enable)
|
||||
if (osk_enable && !driver->keyboard_linefeed_enable)
|
||||
{
|
||||
driver->osk_enable = false;
|
||||
input_driver_ctl(RARCH_INPUT_CTL_UNSET_OSK_ENABLED, NULL);
|
||||
prev_overlay_restore = true;
|
||||
event_command(EVENT_CMD_OVERLAY_DEINIT);
|
||||
}
|
||||
else if (!driver->osk_enable && driver->keyboard_linefeed_enable)
|
||||
else if (!osk_enable && driver->keyboard_linefeed_enable)
|
||||
{
|
||||
driver->osk_enable = true;
|
||||
input_driver_ctl(RARCH_INPUT_CTL_SET_OSK_ENABLED, NULL);
|
||||
prev_overlay_restore = false;
|
||||
event_command(EVENT_CMD_OVERLAY_INIT);
|
||||
}
|
||||
|
@ -727,10 +727,10 @@ error:
|
||||
bool rarch_task_push_overlay_load_default(
|
||||
rarch_task_callback_t cb, void *user_data)
|
||||
{
|
||||
driver_t *driver = driver_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
bool osk_enable = input_driver_ctl(RARCH_INPUT_CTL_IS_OSK_ENABLED, NULL);
|
||||
|
||||
if (driver->osk_enable)
|
||||
if (osk_enable)
|
||||
{
|
||||
if (!*settings->osk.overlay)
|
||||
return false;
|
||||
@ -742,6 +742,6 @@ bool rarch_task_push_overlay_load_default(
|
||||
}
|
||||
|
||||
return rarch_task_push_overlay_load(
|
||||
driver->osk_enable ? settings->osk.overlay : settings->input.overlay,
|
||||
osk_enable ? settings->osk.overlay : settings->input.overlay,
|
||||
cb, user_data);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user