Create menu_driver_is_alive

This commit is contained in:
twinaphex 2017-01-23 00:37:39 +01:00
parent 9152d7e9c4
commit 0d5b3b9273
12 changed files with 25 additions and 24 deletions

View File

@ -1878,7 +1878,7 @@ bool command_event(enum event_command cmd, void *data)
return command_event_resize_windowed_scale(); return command_event_resize_windowed_scale();
case CMD_EVENT_MENU_TOGGLE: case CMD_EVENT_MENU_TOGGLE:
#ifdef HAVE_MENU #ifdef HAVE_MENU
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) if (menu_driver_is_alive())
rarch_ctl(RARCH_CTL_MENU_RUNNING_FINISHED, NULL); rarch_ctl(RARCH_CTL_MENU_RUNNING_FINISHED, NULL);
else else
rarch_ctl(RARCH_CTL_MENU_RUNNING, NULL); rarch_ctl(RARCH_CTL_MENU_RUNNING, NULL);
@ -1969,7 +1969,7 @@ bool command_event(enum event_command cmd, void *data)
command_event(CMD_EVENT_GAME_FOCUS_TOGGLE, (void*)(intptr_t)-1); command_event(CMD_EVENT_GAME_FOCUS_TOGGLE, (void*)(intptr_t)-1);
#ifdef HAVE_MENU #ifdef HAVE_MENU
menu_display_set_framebuffer_dirty_flag(); menu_display_set_framebuffer_dirty_flag();
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) if (menu_driver_is_alive())
command_event(CMD_EVENT_VIDEO_SET_BLOCKING_STATE, NULL); command_event(CMD_EVENT_VIDEO_SET_BLOCKING_STATE, NULL);
#endif #endif
break; break;
@ -2382,7 +2382,7 @@ bool command_event(enum event_command cmd, void *data)
#ifdef HAVE_MENU #ifdef HAVE_MENU
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) if (menu_driver_is_alive())
{ {
if (settings->menu.pause_libretro) if (settings->menu.pause_libretro)
command_event(CMD_EVENT_AUDIO_STOP, NULL); command_event(CMD_EVENT_AUDIO_STOP, NULL);

View File

@ -542,7 +542,7 @@ LRESULT CALLBACK WndProcGDI(HWND hwnd, UINT message,
HDC hdc = BeginPaint(hwnd, &ps); HDC hdc = BeginPaint(hwnd, &ps);
#ifdef HAVE_MENU #ifdef HAVE_MENU
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL) && !gdi_has_menu_frame()) if (menu_driver_is_alive() && !gdi_has_menu_frame())
{ {
RECT rect; RECT rect;
GetClientRect(hwnd, &rect); GetClientRect(hwnd, &rect);

View File

@ -2291,7 +2291,7 @@ void video_driver_build_info(video_frame_info_t *video_info)
video_info->libretro_running = false; video_info->libretro_running = false;
#ifdef HAVE_MENU #ifdef HAVE_MENU
video_info->menu_is_alive = menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL); video_info->menu_is_alive = menu_driver_is_alive();
video_info->menu_footer_opacity = settings->menu.footer.opacity; video_info->menu_footer_opacity = settings->menu.footer.opacity;
video_info->menu_header_opacity = settings->menu.header.opacity; video_info->menu_header_opacity = settings->menu.header.opacity;
video_info->materialui_color_theme = settings->menu.materialui.menu_color_theme; video_info->materialui_color_theme = settings->menu.materialui.menu_color_theme;

View File

@ -181,7 +181,7 @@ static void ps3_joypad_poll(void)
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_TRIANGLE) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_X) : 0; *state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_TRIANGLE) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_X) : 0;
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_SQUARE) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_Y) : 0; *state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_SQUARE) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_Y) : 0;
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) if (menu_driver_is_alive())
{ {
int value = 0; int value = 0;
if (cellSysutilGetSystemParamInt(CELL_SYSUTIL_SYSTEMPARAM_ID_ENTER_BUTTON_ASSIGN, &value) == 0) if (cellSysutilGetSystemParamInt(CELL_SYSUTIL_SYSTEMPARAM_ID_ENTER_BUTTON_ASSIGN, &value) == 0)

View File

@ -250,7 +250,7 @@ static void psp_joypad_poll(void)
#endif #endif
#if defined(VITA) #if defined(VITA)
if (psp2_model == SCE_KERNEL_MODEL_VITA if (psp2_model == SCE_KERNEL_MODEL_VITA
&& !menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL) && !menu_driver_is_alive()
&& settings->input.backtouch_enable) && settings->input.backtouch_enable)
{ {
unsigned i; unsigned i;

View File

@ -487,7 +487,7 @@ void input_overlay_loaded(void *task_data, void *user_data, const char *err)
#ifdef HAVE_MENU #ifdef HAVE_MENU
/* We can't display when the menu is up */ /* We can't display when the menu is up */
if (data->hide_in_menu && menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) if (data->hide_in_menu && menu_driver_is_alive())
{ {
if (data->overlay_enable) if (data->overlay_enable)
goto abort_load; goto abort_load;

View File

@ -415,7 +415,7 @@ static void rgui_render(void *data)
msg_force = menu_display_get_msg_force(); msg_force = menu_display_get_msg_force();
if (menu_entries_ctl(MENU_ENTRIES_CTL_NEEDS_REFRESH, NULL) if (menu_entries_ctl(MENU_ENTRIES_CTL_NEEDS_REFRESH, NULL)
&& menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL) && !msg_force) && menu_driver_is_alive() && !msg_force)
return; return;
if (runloop_ctl(RUNLOOP_CTL_IS_IDLE, NULL)) if (runloop_ctl(RUNLOOP_CTL_IS_IDLE, NULL))

View File

@ -539,7 +539,7 @@ static void xui_render(void *data)
if ( if (
menu_entries_ctl(MENU_ENTRIES_CTL_NEEDS_REFRESH, NULL) menu_entries_ctl(MENU_ENTRIES_CTL_NEEDS_REFRESH, NULL)
&& menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL) && menu_driver_is_alive()
&& !msg_force && !msg_force
) )
return; return;

View File

@ -304,10 +304,7 @@ const char *menu_driver_ident(void)
void menu_driver_frame(video_frame_info_t *video_info) void menu_driver_frame(video_frame_info_t *video_info)
{ {
if (!menu_driver_alive) if (menu_driver_alive && menu_driver_ctx->frame)
return;
if (menu_driver_ctx->frame)
menu_driver_ctx->frame(menu_userdata, video_info); menu_driver_ctx->frame(menu_userdata, video_info);
} }
@ -376,6 +373,11 @@ bool menu_driver_render(bool is_idle)
return true; return true;
} }
bool menu_driver_is_alive(void)
{
return menu_driver_alive;
}
bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data) bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
{ {
switch (state) switch (state)
@ -507,8 +509,6 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
case RARCH_MENU_CTL_UNSET_TOGGLE: case RARCH_MENU_CTL_UNSET_TOGGLE:
menu_driver_toggle(false); menu_driver_toggle(false);
break; break;
case RARCH_MENU_CTL_IS_ALIVE:
return menu_driver_alive;
case RARCH_MENU_CTL_SET_OWN_DRIVER: case RARCH_MENU_CTL_SET_OWN_DRIVER:
menu_driver_data_own = true; menu_driver_data_own = true;
break; break;

View File

@ -104,7 +104,6 @@ enum rarch_menu_ctl_state
RARCH_MENU_CTL_IS_TOGGLE, RARCH_MENU_CTL_IS_TOGGLE,
RARCH_MENU_CTL_SET_TOGGLE, RARCH_MENU_CTL_SET_TOGGLE,
RARCH_MENU_CTL_UNSET_TOGGLE, RARCH_MENU_CTL_UNSET_TOGGLE,
RARCH_MENU_CTL_IS_ALIVE,
RARCH_MENU_CTL_DESTROY, RARCH_MENU_CTL_DESTROY,
RARCH_MENU_CTL_IS_SET_TEXTURE, RARCH_MENU_CTL_IS_SET_TEXTURE,
RARCH_MENU_CTL_SET_OWN_DRIVER, RARCH_MENU_CTL_SET_OWN_DRIVER,
@ -392,6 +391,8 @@ void menu_driver_set_binding_state(bool on);
void menu_driver_frame(video_frame_info_t *video_info); void menu_driver_frame(video_frame_info_t *video_info);
bool menu_driver_is_alive(void);
extern menu_ctx_driver_t menu_ctx_xui; extern menu_ctx_driver_t menu_ctx_xui;
extern menu_ctx_driver_t menu_ctx_rgui; extern menu_ctx_driver_t menu_ctx_rgui;
extern menu_ctx_driver_t menu_ctx_mui; extern menu_ctx_driver_t menu_ctx_mui;

View File

@ -1080,7 +1080,7 @@ bool retroarch_main_init(int argc, char *argv[])
{ {
#ifdef HAVE_MENU #ifdef HAVE_MENU
/* Check if menu was active prior to core initialization */ /* Check if menu was active prior to core initialization */
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) if (menu_driver_is_alive())
{ {
/* Attempt initializing dummy core */ /* Attempt initializing dummy core */
current_core_type = CORE_TYPE_DUMMY; current_core_type = CORE_TYPE_DUMMY;

View File

@ -706,7 +706,7 @@ static enum runloop_state runloop_check_state(
if (runloop_cmd_triggered(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY)) if (runloop_cmd_triggered(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY))
{ {
bool fullscreen_toggled = !runloop_paused || menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL); bool fullscreen_toggled = !runloop_paused || menu_driver_is_alive();
if (fullscreen_toggled) if (fullscreen_toggled)
command_event(CMD_EVENT_FULLSCREEN_TOGGLE, NULL); command_event(CMD_EVENT_FULLSCREEN_TOGGLE, NULL);
@ -757,7 +757,7 @@ static enum runloop_state runloop_check_state(
} }
#ifdef HAVE_MENU #ifdef HAVE_MENU
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) if (menu_driver_is_alive())
{ {
menu_ctx_iterate_t iter; menu_ctx_iterate_t iter;
core_poll(); core_poll();
@ -794,7 +794,7 @@ static enum runloop_state runloop_check_state(
#ifdef HAVE_MENU #ifdef HAVE_MENU
if (menu_event_kb_is_set(RETROK_F1) == 1) if (menu_event_kb_is_set(RETROK_F1) == 1)
{ {
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) if (menu_driver_is_alive())
{ {
if (rarch_ctl(RARCH_CTL_IS_INITED, NULL) && if (rarch_ctl(RARCH_CTL_IS_INITED, NULL) &&
!rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL)) !rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
@ -808,7 +808,7 @@ static enum runloop_state runloop_check_state(
runloop_cmd_triggered(trigger_input, RARCH_MENU_TOGGLE)) || runloop_cmd_triggered(trigger_input, RARCH_MENU_TOGGLE)) ||
rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL)) rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
{ {
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) if (menu_driver_is_alive())
{ {
if (rarch_ctl(RARCH_CTL_IS_INITED, NULL) && if (rarch_ctl(RARCH_CTL_IS_INITED, NULL) &&
!rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL)) !rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
@ -823,7 +823,7 @@ static enum runloop_state runloop_check_state(
else else
menu_event_kb_set(false, RETROK_F1); menu_event_kb_set(false, RETROK_F1);
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) if (menu_driver_is_alive())
{ {
if (!settings->menu.throttle_framerate && !settings->fastforward_ratio) if (!settings->menu.throttle_framerate && !settings->fastforward_ratio)
return RUNLOOP_STATE_MENU_ITERATE; return RUNLOOP_STATE_MENU_ITERATE;
@ -1043,7 +1043,7 @@ int runloop_iterate(unsigned *sleep_ms)
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
uint64_t old_input = last_input; uint64_t old_input = last_input;
#ifdef HAVE_MENU #ifdef HAVE_MENU
bool menu_is_alive = menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL); bool menu_is_alive = menu_driver_is_alive();
#else #else
bool menu_is_alive = false; bool menu_is_alive = false;
#endif #endif