From a8e5cf548361e5c94eb053c5f18cd777d389dc08 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 27 Sep 2015 01:43:13 +0200 Subject: [PATCH] Move functionality over to menu_driver_toggle --- menu/menu_driver.c | 46 ++++++++++++++++++++++++++++++++++++++++++---- retroarch.c | 30 ------------------------------ 2 files changed, 42 insertions(+), 34 deletions(-) diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 0991aa8267..6eb4c0ff6b 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -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) diff --git a/retroarch.c b/retroarch.c index e742393c22..62ad6c973b 100644 --- a/retroarch.c +++ b/retroarch.c @@ -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