Create runloop_prepare_dummy
This commit is contained in:
parent
1d98d3c17f
commit
c1bfe795f8
|
@ -1775,7 +1775,7 @@ bool command_event(enum event_command cmd, void *data)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case CMD_EVENT_UNLOAD_CORE:
|
case CMD_EVENT_UNLOAD_CORE:
|
||||||
runloop_ctl(RUNLOOP_CTL_PREPARE_DUMMY, NULL);
|
runloop_prepare_dummy();
|
||||||
command_event(CMD_EVENT_LOAD_CORE_DEINIT, NULL);
|
command_event(CMD_EVENT_LOAD_CORE_DEINIT, NULL);
|
||||||
break;
|
break;
|
||||||
case CMD_EVENT_QUIT:
|
case CMD_EVENT_QUIT:
|
||||||
|
|
|
@ -1539,7 +1539,7 @@ bool retroarch_replace_config(char *path)
|
||||||
|
|
||||||
*settings->path.libretro = '\0'; /* Load core in new config. */
|
*settings->path.libretro = '\0'; /* Load core in new config. */
|
||||||
|
|
||||||
runloop_ctl(RUNLOOP_CTL_PREPARE_DUMMY, NULL);
|
runloop_prepare_dummy();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
39
runloop.c
39
runloop.c
|
@ -720,6 +720,26 @@ static bool runloop_is_frame_count_end(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool runloop_prepare_dummy(void)
|
||||||
|
{
|
||||||
|
memset(&runloop_frame_time, 0, sizeof(struct retro_frame_time_callback));
|
||||||
|
#ifdef HAVE_MENU
|
||||||
|
menu_driver_ctl(RARCH_MENU_CTL_UNSET_LOAD_NO_CONTENT, NULL);
|
||||||
|
#endif
|
||||||
|
runloop_ctl(RUNLOOP_CTL_DATA_DEINIT, NULL);
|
||||||
|
runloop_ctl(RUNLOOP_CTL_TASK_INIT, NULL);
|
||||||
|
runloop_ctl(RUNLOOP_CTL_CLEAR_CONTENT_PATH, NULL);
|
||||||
|
|
||||||
|
#ifdef HAVE_MENU
|
||||||
|
if (!menu_content_ctl(MENU_CONTENT_CTL_LOAD, NULL))
|
||||||
|
{
|
||||||
|
rarch_ctl(RARCH_CTL_MENU_RUNNING, NULL);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool runloop_ctl(enum runloop_ctl_state state, void *data)
|
bool runloop_ctl(enum runloop_ctl_state state, void *data)
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
|
@ -1056,23 +1076,6 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
|
||||||
task_queue_ctl(TASK_QUEUE_CTL_INIT, &threaded_enable);
|
task_queue_ctl(TASK_QUEUE_CTL_INIT, &threaded_enable);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RUNLOOP_CTL_PREPARE_DUMMY:
|
|
||||||
memset(&runloop_frame_time, 0, sizeof(struct retro_frame_time_callback));
|
|
||||||
#ifdef HAVE_MENU
|
|
||||||
menu_driver_ctl(RARCH_MENU_CTL_UNSET_LOAD_NO_CONTENT, NULL);
|
|
||||||
#endif
|
|
||||||
runloop_ctl(RUNLOOP_CTL_DATA_DEINIT, NULL);
|
|
||||||
runloop_ctl(RUNLOOP_CTL_TASK_INIT, NULL);
|
|
||||||
runloop_ctl(RUNLOOP_CTL_CLEAR_CONTENT_PATH, NULL);
|
|
||||||
|
|
||||||
#ifdef HAVE_MENU
|
|
||||||
if (!menu_content_ctl(MENU_CONTENT_CTL_LOAD, NULL))
|
|
||||||
{
|
|
||||||
rarch_ctl(RARCH_CTL_MENU_RUNNING, NULL);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
case RUNLOOP_CTL_SET_CORE_SHUTDOWN:
|
case RUNLOOP_CTL_SET_CORE_SHUTDOWN:
|
||||||
runloop_core_shutdown_initiated = true;
|
runloop_core_shutdown_initiated = true;
|
||||||
break;
|
break;
|
||||||
|
@ -1262,7 +1265,7 @@ static void runloop_iterate_linefeed_overlay(settings_t *settings)
|
||||||
* Aborts core shutdown if invoked. */
|
* Aborts core shutdown if invoked. */
|
||||||
static int runloop_iterate_time_to_exit_load_dummy(void)
|
static int runloop_iterate_time_to_exit_load_dummy(void)
|
||||||
{
|
{
|
||||||
if (!runloop_ctl(RUNLOOP_CTL_PREPARE_DUMMY, NULL))
|
if (!runloop_prepare_dummy())
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
runloop_ctl(RUNLOOP_CTL_UNSET_SHUTDOWN, NULL);
|
runloop_ctl(RUNLOOP_CTL_UNSET_SHUTDOWN, NULL);
|
||||||
|
|
|
@ -102,8 +102,7 @@ enum runloop_ctl_state
|
||||||
RUNLOOP_CTL_SHADER_DIR_INIT,
|
RUNLOOP_CTL_SHADER_DIR_INIT,
|
||||||
RUNLOOP_CTL_SYSTEM_INFO_GET,
|
RUNLOOP_CTL_SYSTEM_INFO_GET,
|
||||||
RUNLOOP_CTL_SYSTEM_INFO_INIT,
|
RUNLOOP_CTL_SYSTEM_INFO_INIT,
|
||||||
RUNLOOP_CTL_SYSTEM_INFO_FREE,
|
RUNLOOP_CTL_SYSTEM_INFO_FREE
|
||||||
RUNLOOP_CTL_PREPARE_DUMMY
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef int (*transfer_cb_t)(void *data, size_t len);
|
typedef int (*transfer_cb_t)(void *data, size_t len);
|
||||||
|
@ -295,6 +294,8 @@ void runloop_msg_queue_push(const char *msg, unsigned prio,
|
||||||
|
|
||||||
char* runloop_msg_queue_pull(void);
|
char* runloop_msg_queue_pull(void);
|
||||||
|
|
||||||
|
bool runloop_prepare_dummy(void);
|
||||||
|
|
||||||
bool runloop_ctl(enum runloop_ctl_state state, void *data);
|
bool runloop_ctl(enum runloop_ctl_state state, void *data);
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue