Move functionality over to menu_driver_toggle

This commit is contained in:
twinaphex 2015-09-27 01:43:13 +02:00
parent a3e133f847
commit a8e5cf5483
2 changed files with 42 additions and 34 deletions

View File

@ -328,15 +328,53 @@ bool menu_driver_alive(void)
void menu_driver_toggle(bool latch)
{
const menu_ctx_driver_t *driver = menu_ctx_driver_get_ptr();
driver_t *driver = driver_get_ptr();
const menu_ctx_driver_t *menu_driver = menu_ctx_driver_get_ptr();
settings_t *settings = config_get_ptr();
global_t *global = global_get_ptr();
rarch_system_info_t *system = rarch_system_info_get_ptr();
if (driver->toggle)
driver->toggle(latch);
if (menu_driver->toggle)
menu_driver->toggle(latch);
menu_alive = latch;
if (menu_alive)
if (menu_alive == true)
{
menu_entries_set_refresh(false);
/* Menu should always run with vsync on. */
event_command(EVENT_CMD_VIDEO_SET_BLOCKING_STATE);
/* Stop all rumbling before entering the menu. */
event_command(EVENT_CMD_RUMBLE_STOP);
if (settings->menu.pause_libretro)
event_command(EVENT_CMD_AUDIO_STOP);
/* Override keyboard callback to redirect to menu instead.
* We'll use this later for something ...
* FIXME: This should probably be moved to menu_common somehow. */
if (global)
{
global->frontend_key_event = system->key_event;
system->key_event = menu_input_key_event;
system->frame_time_last = 0;
}
}
else
{
driver_set_nonblock_state(driver->nonblock_state);
if (settings && settings->menu.pause_libretro)
event_command(EVENT_CMD_AUDIO_START);
/* Prevent stray input from going to libretro core */
driver->flushing_input = true;
/* Restore libretro keyboard callback. */
if (global)
system->key_event = global->frontend_key_event;
}
}
bool menu_driver_load_image(void *data, menu_image_type_t type)

View File

@ -1379,24 +1379,6 @@ void rarch_main_set_state(unsigned cmd)
case RARCH_ACTION_STATE_MENU_RUNNING:
#ifdef HAVE_MENU
menu_driver_toggle(true);
/* Menu should always run with vsync on. */
event_command(EVENT_CMD_VIDEO_SET_BLOCKING_STATE);
/* Stop all rumbling before entering the menu. */
event_command(EVENT_CMD_RUMBLE_STOP);
if (settings->menu.pause_libretro)
event_command(EVENT_CMD_AUDIO_STOP);
/* Override keyboard callback to redirect to menu instead.
* We'll use this later for something ...
* FIXME: This should probably be moved to menu_common somehow. */
if (global)
{
global->frontend_key_event = system->key_event;
system->key_event = menu_input_key_event;
system->frame_time_last = 0;
}
#endif
#ifdef HAVE_OVERLAY
if (settings->input.overlay_hide_in_menu)
@ -1435,18 +1417,6 @@ void rarch_main_set_state(unsigned cmd)
case RARCH_ACTION_STATE_MENU_RUNNING_FINISHED:
#ifdef HAVE_MENU
menu_driver_toggle(false);
driver_set_nonblock_state(driver->nonblock_state);
if (settings && settings->menu.pause_libretro)
event_command(EVENT_CMD_AUDIO_START);
/* Prevent stray input from going to libretro core */
driver->flushing_input = true;
/* Restore libretro keyboard callback. */
if (global)
system->key_event = global->frontend_key_event;
#endif
video_driver_set_texture_enable(false, false);
#ifdef HAVE_OVERLAY