mirror of
https://github.com/libretro/RetroArch
synced 2025-02-02 14:54:10 +00:00
Add param to set_fork - for restart
This commit is contained in:
parent
b5b8886894
commit
457ce1ddf0
@ -1314,7 +1314,7 @@ bool event_command(enum event_command cmd)
|
|||||||
rarch_ctl(RARCH_CTL_MENU_RUNNING_FINISHED, NULL);
|
rarch_ctl(RARCH_CTL_MENU_RUNNING_FINISHED, NULL);
|
||||||
break;
|
break;
|
||||||
case EVENT_CMD_RESTART_RETROARCH:
|
case EVENT_CMD_RESTART_RETROARCH:
|
||||||
frontend_driver_set_fork(true, false);
|
frontend_driver_set_fork(true, false, true);
|
||||||
break;
|
break;
|
||||||
case EVENT_CMD_MENU_SAVE_CURRENT_CONFIG:
|
case EVENT_CMD_MENU_SAVE_CURRENT_CONFIG:
|
||||||
event_save_current_config();
|
event_save_current_config();
|
||||||
|
@ -1231,7 +1231,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(RARCH_CONSOLE)
|
#if defined(RARCH_CONSOLE)
|
||||||
frontend_driver_set_fork(true, true);
|
frontend_driver_set_fork(true, true, false);
|
||||||
#elif defined(HAVE_DYNAMIC)
|
#elif defined(HAVE_DYNAMIC)
|
||||||
rarch_ctl(RARCH_CTL_LOAD_CONTENT, NULL);
|
rarch_ctl(RARCH_CTL_LOAD_CONTENT, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
@ -364,12 +364,15 @@ static void frontend_gx_process_args(int *argc, char *argv[])
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void frontend_gx_set_fork(bool exitspawn, bool start_game)
|
static void frontend_gx_set_fork(bool exitspawn, bool start_game, bool restart)
|
||||||
{
|
{
|
||||||
#if defined(HW_RVL) && !defined(IS_SALAMANDER)
|
#if defined(HW_RVL) && !defined(IS_SALAMANDER)
|
||||||
|
if (restart)
|
||||||
|
{
|
||||||
char new_path[PATH_MAX_LENGTH];
|
char new_path[PATH_MAX_LENGTH];
|
||||||
fill_pathname_join(new_path, g_defaults.dir.core, SALAMANDER_FILE, sizeof(new_path));
|
fill_pathname_join(new_path, g_defaults.dir.core, SALAMANDER_FILE, sizeof(new_path));
|
||||||
runloop_ctl(RUNLOOP_CTL_SET_CONTENT_PATH, new_path);
|
runloop_ctl(RUNLOOP_CTL_SET_CONTENT_PATH, new_path);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
exit_spawn = exitspawn;
|
exit_spawn = exitspawn;
|
||||||
@ -413,6 +416,13 @@ static int frontend_gx_parse_drive_list(void *data)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void frontend_gx_shutdown(bool unused)
|
||||||
|
{
|
||||||
|
#ifndef IS_SALAMANDER
|
||||||
|
exit(0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
frontend_ctx_driver_t frontend_ctx_gx = {
|
frontend_ctx_driver_t frontend_ctx_gx = {
|
||||||
frontend_gx_get_environment_settings,
|
frontend_gx_get_environment_settings,
|
||||||
frontend_gx_init,
|
frontend_gx_init,
|
||||||
@ -421,7 +431,7 @@ frontend_ctx_driver_t frontend_ctx_gx = {
|
|||||||
frontend_gx_process_args,
|
frontend_gx_process_args,
|
||||||
frontend_gx_exec,
|
frontend_gx_exec,
|
||||||
frontend_gx_set_fork,
|
frontend_gx_set_fork,
|
||||||
NULL, /* shutdown */
|
frontend_gx_shutdown,
|
||||||
NULL, /* get_name */
|
NULL, /* get_name */
|
||||||
NULL, /* get_os */
|
NULL, /* get_os */
|
||||||
frontend_gx_get_rating,
|
frontend_gx_get_rating,
|
||||||
|
@ -326,7 +326,7 @@ static void frontend_ps3_deinit(void *data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef IS_SALAMANDER
|
#ifndef IS_SALAMANDER
|
||||||
static void frontend_ps3_set_fork(bool exit, bool start_game)
|
static void frontend_ps3_set_fork(bool exit, bool start_game, bool restart)
|
||||||
{
|
{
|
||||||
exit_spawn = exitspawn;
|
exit_spawn = exitspawn;
|
||||||
exitspawn_start_game = start_game;
|
exitspawn_start_game = start_game;
|
||||||
|
@ -273,7 +273,7 @@ static void frontend_psp_exec(const char *path, bool should_load_game)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void frontend_psp_set_fork(bool exit, bool start_game)
|
static void frontend_psp_set_fork(bool exit, bool start_game, bool restart)
|
||||||
{
|
{
|
||||||
exit_spawn = true;
|
exit_spawn = true;
|
||||||
exitspawn_start_game = start_game;
|
exitspawn_start_game = start_game;
|
||||||
|
@ -1292,7 +1292,7 @@ static void frontend_xdk_exec(const char *path, bool should_load_game)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void frontend_xdk_set_fork(bool exit, bool start_game)
|
static void frontend_xdk_set_fork(bool exit, bool start_game, bool restart)
|
||||||
{
|
{
|
||||||
exit_spawn = exit;
|
exit_spawn = exit;
|
||||||
exitspawn_start_game = start_game;
|
exitspawn_start_game = start_game;
|
||||||
|
@ -131,13 +131,13 @@ void frontend_driver_content_loaded(void)
|
|||||||
frontend->content_loaded();
|
frontend->content_loaded();
|
||||||
}
|
}
|
||||||
|
|
||||||
void frontend_driver_set_fork(bool a, bool b)
|
void frontend_driver_set_fork(bool a, bool b, bool restart)
|
||||||
{
|
{
|
||||||
frontend_ctx_driver_t *frontend = frontend_get_ptr();
|
frontend_ctx_driver_t *frontend = frontend_get_ptr();
|
||||||
|
|
||||||
if (!frontend || !frontend->set_fork)
|
if (!frontend || !frontend->set_fork)
|
||||||
return;
|
return;
|
||||||
frontend->set_fork(a, b);
|
frontend->set_fork(a, b, restart);
|
||||||
}
|
}
|
||||||
|
|
||||||
void frontend_driver_process_args(int *argc, char *argv[])
|
void frontend_driver_process_args(int *argc, char *argv[])
|
||||||
|
@ -64,7 +64,7 @@ typedef struct frontend_ctx_driver
|
|||||||
|
|
||||||
process_args_t process_args;
|
process_args_t process_args;
|
||||||
void (*exec)(const char *, bool);
|
void (*exec)(const char *, bool);
|
||||||
void (*set_fork)(bool exitspawn, bool start_game);
|
void (*set_fork)(bool exitspawn, bool start_game, bool restart);
|
||||||
void (*shutdown)(bool);
|
void (*shutdown)(bool);
|
||||||
void (*get_name)(char *, size_t);
|
void (*get_name)(char *, size_t);
|
||||||
void (*get_os)(char *, size_t, int *major, int *minor);
|
void (*get_os)(char *, size_t, int *major, int *minor);
|
||||||
@ -116,7 +116,7 @@ int frontend_driver_parse_drive_list(void *data);
|
|||||||
|
|
||||||
void frontend_driver_content_loaded(void);
|
void frontend_driver_content_loaded(void);
|
||||||
|
|
||||||
void frontend_driver_set_fork(bool a, bool b);
|
void frontend_driver_set_fork(bool a, bool b, bool restart);
|
||||||
|
|
||||||
void frontend_driver_process_args(int *argc, char *argv[]);
|
void frontend_driver_process_args(int *argc, char *argv[]);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user