Move driver->osk_enable to input_driver.c

This commit is contained in:
twinaphex 2015-11-30 03:14:26 +01:00
parent 5b6641b077
commit d4e88324ac
7 changed files with 32 additions and 21 deletions

View File

@ -217,7 +217,6 @@ typedef struct driver
bool camera_active;
bool location_active;
bool osk_enable;
bool keyboard_linefeed_enable;
#ifdef HAVE_MENU

View File

@ -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;

View File

@ -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

View File

@ -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.

View File

@ -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;

View File

@ -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);
}

View File

@ -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);
}