mirror of
https://github.com/CTCaer/RetroArch.git
synced 2025-02-22 12:40:31 +00:00
(RARCH_CONSOLE) Refactored external_launch
This commit is contained in:
parent
33a2816681
commit
67ab39e6be
@ -32,17 +32,6 @@
|
||||
#define EXT_CGP_PRESETS "cgp|CGP"
|
||||
#define EXT_INPUT_PRESETS "cfg|CFG"
|
||||
|
||||
enum
|
||||
{
|
||||
EXTERN_LAUNCHER_SALAMANDER,
|
||||
#ifdef HAVE_MULTIMAN
|
||||
EXTERN_LAUNCHER_MULTIMAN,
|
||||
#endif
|
||||
#ifdef GEKKO
|
||||
EXTERN_LAUNCHER_CHANNEL,
|
||||
#endif
|
||||
};
|
||||
|
||||
enum {
|
||||
MENU_ITEM_LOAD_STATE = 0,
|
||||
MENU_ITEM_SAVE_STATE,
|
||||
|
@ -760,11 +760,11 @@ static int rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t
|
||||
if (action == RGUI_ACTION_OK)
|
||||
{
|
||||
#ifdef GEKKO
|
||||
snprintf(g_extern.console.external_launch.launch_app, sizeof(g_extern.console.external_launch.launch_app), "%s/boot.dol", default_paths.core_dir);
|
||||
snprintf(g_extern.fullpath, sizeof(g_extern.fullpath), "%s/boot.dol", default_paths.core_dir);
|
||||
#endif
|
||||
g_extern.console.external_launch.enable = true;
|
||||
g_extern.lifecycle_menu_state &= ~(1 << MODE_EMULATION);
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXIT);
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXITSPAWN);
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
|
@ -716,10 +716,10 @@ int select_file(void *data, void *state)
|
||||
|
||||
if(set_libretro_core_as_launch)
|
||||
{
|
||||
strlcpy(g_extern.console.external_launch.launch_app, path, sizeof(g_extern.console.external_launch.launch_app));
|
||||
strlcpy(g_extern.fullpath, path, sizeof(g_extern.fullpath));
|
||||
set_libretro_core_as_launch = false;
|
||||
g_extern.console.external_launch.enable = true;
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXIT);
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXITSPAWN);
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
@ -2237,11 +2237,10 @@ int ingame_menu(void *data, void *state)
|
||||
if(input & (1ULL << RMENU_DEVICE_NAV_B))
|
||||
{
|
||||
RARCH_LOG("Boot Multiman: %s.\n", default_paths.multiman_self_file);
|
||||
strlcpy(g_extern.console.external_launch.launch_app, default_paths.multiman_self_file,
|
||||
sizeof(g_extern.console.external_launch.launch_app));
|
||||
g_extern.console.external_launch.enable = true;
|
||||
strlcpy(g_extern.fullpath, default_paths.multiman_self_file, sizeof(g_extern.fullpath));
|
||||
g_extern.lifecycle_menu_state &= ~(1 << MODE_EMULATION);
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXIT);
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXITSPAWN);
|
||||
return -1;
|
||||
}
|
||||
snprintf(strw_buffer, sizeof(strw_buffer), "Press [%s] to quit RetroArch and return to multiMAN.", rarch_input_find_platform_key_label(1ULL << RETRO_DEVICE_ID_JOYPAD_B));
|
||||
|
@ -972,9 +972,9 @@ HRESULT CRetroArchCoreBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle
|
||||
convert_wchar_to_char(str_buffer, (const wchar_t *)m_romlist.GetText(index), sizeof(str_buffer));
|
||||
if(path_file_exists(tmp_browser->current_dir.list->elems[index].data))
|
||||
{
|
||||
snprintf(g_extern.console.external_launch.launch_app, sizeof(g_extern.console.external_launch.launch_app), "%s\\%s", filebrowser_get_current_dir(tmp_browser), str_buffer);
|
||||
g_extern.console.external_launch.enable = true;
|
||||
snprintf(g_extern.fullpath, sizeof(g_extern.fullpath), "%s\\%s", filebrowser_get_current_dir(tmp_browser), str_buffer);
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXIT);
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXITSPAWN);
|
||||
process_input_ret = -1;
|
||||
}
|
||||
else if(tmp_browser->current_dir.list->elems[index].attr.b)
|
||||
|
@ -339,7 +339,7 @@ static void system_exitspawn(void)
|
||||
#ifdef IS_SALAMANDER
|
||||
rarch_console_exec(default_paths.libretro_path);
|
||||
#else
|
||||
if(g_extern.console.external_launch.enable)
|
||||
if (g_extern.lifecycle_menu_state & (1 << MODE_EXITSPAWN))
|
||||
rarch_console_exec(g_settings.libretro);
|
||||
#endif
|
||||
}
|
||||
@ -372,7 +372,7 @@ static void system_process_args(int argc, char *argv[])
|
||||
if (argc > 2 && argv[1] != NULL && argv[2] != NULL)
|
||||
{
|
||||
char rom[PATH_MAX];
|
||||
g_extern.console.external_launch.support = EXTERN_LAUNCHER_CHANNEL;
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXTLAUNCH_CHANNEL);
|
||||
snprintf(rom, sizeof(rom), "%s%s", argv[1], argv[2]);
|
||||
g_extern.file_state.zip_extract_mode = ZIP_EXTRACT_TO_CURRENT_DIR_AND_LOAD_FIRST_FILE;
|
||||
rarch_console_load_game_wrap(rom, g_extern.file_state.zip_extract_mode);
|
||||
@ -385,7 +385,7 @@ static void system_process_args(int argc, char *argv[])
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_INIT);
|
||||
}
|
||||
else
|
||||
g_extern.console.external_launch.support = EXTERN_LAUNCHER_SALAMANDER;
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXTLAUNCH_SALAMANDER);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -218,15 +218,15 @@ static void get_environment_settings(int argc, char *argv[])
|
||||
|
||||
if(path_file_exists(default_paths.multiman_self_file) && argc > 1 && path_file_exists(argv[1]))
|
||||
{
|
||||
g_extern.console.external_launch.support = EXTERN_LAUNCHER_MULTIMAN;
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXTLAUNCH_MULTIMAN);
|
||||
RARCH_LOG("Started from multiMAN, auto-game start enabled.\n");
|
||||
}
|
||||
else
|
||||
#endif
|
||||
#ifndef IS_SALAMANDER
|
||||
{
|
||||
g_extern.console.external_launch.support = EXTERN_LAUNCHER_SALAMANDER;
|
||||
RARCH_WARN("Not started from multiMAN, auto-game start disabled.\n");
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_EXTLAUNCH_SALAMANDER);
|
||||
RARCH_WARN("Started from Salamander, auto-game start disabled.\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -259,7 +259,7 @@ static void get_environment_settings(int argc, char *argv[])
|
||||
ret = cellGameContentPermit(contentInfoPath, default_paths.port_dir);
|
||||
|
||||
#ifdef HAVE_MULTIMAN
|
||||
if(g_extern.console.external_launch.support == EXTERN_LAUNCHER_MULTIMAN)
|
||||
if (g_extern.lifecycle_menu_state & (1 << MODE_EXTLAUNCH_MULTIMAN))
|
||||
{
|
||||
snprintf(contentInfoPath, sizeof(contentInfoPath), "/dev_hdd0/game/%s", EMULATOR_CONTENT_DIR);
|
||||
snprintf(default_paths.port_dir, sizeof(default_paths.port_dir), "/dev_hdd0/game/%s/USRDIR", EMULATOR_CONTENT_DIR);
|
||||
@ -385,21 +385,15 @@ static void system_post_init(void)
|
||||
|
||||
static void system_process_args(int argc, char *argv[])
|
||||
{
|
||||
switch(g_extern.console.external_launch.support)
|
||||
{
|
||||
case EXTERN_LAUNCHER_SALAMANDER:
|
||||
break;
|
||||
#ifdef HAVE_MULTIMAN
|
||||
case EXTERN_LAUNCHER_MULTIMAN:
|
||||
RARCH_LOG("Started from multiMAN, will auto-start game.\n");
|
||||
strlcpy(g_extern.fullpath, argv[1], sizeof(g_extern.fullpath));
|
||||
g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU);
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_INIT);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
if (g_extern.lifecycle_menu_state & (1 << MODE_EXTLAUNCH_MULTIMAN))
|
||||
{
|
||||
RARCH_LOG("Started from multiMAN, will auto-start game.\n");
|
||||
strlcpy(g_extern.fullpath, argv[1], sizeof(g_extern.fullpath));
|
||||
g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU);
|
||||
g_extern.lifecycle_menu_state |= (1 << MODE_INIT);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void system_deinit(void)
|
||||
@ -470,8 +464,8 @@ static void system_exitspawn(void)
|
||||
cellSysmoduleLoadModule(CELL_SYSMODULE_FS);
|
||||
cellSysmoduleLoadModule(CELL_SYSMODULE_IO);
|
||||
#else
|
||||
if(g_extern.console.external_launch.enable)
|
||||
rarch_console_exec(g_extern.console.external_launch.launch_app);
|
||||
if (g_extern.lifecycle_menu_state & (1 << MODE_EXITSPAWN))
|
||||
rarch_console_exec(g_extern.fullpath);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
11
general.h
11
general.h
@ -111,7 +111,11 @@ enum menu_enums
|
||||
MODE_MENU_DRAW,
|
||||
MODE_INFO_DRAW,
|
||||
MODE_FPS_DRAW,
|
||||
MODE_EXTLAUNCH_SALAMANDER,
|
||||
MODE_EXTLAUNCH_CHANNEL,
|
||||
MODE_EXTLAUNCH_MULTIMAN,
|
||||
MODE_EXIT,
|
||||
MODE_EXITSPAWN,
|
||||
MODE_LOAD_FIRST_SHADER,
|
||||
MODE_LOAD_SECOND_SHADER,
|
||||
};
|
||||
@ -503,13 +507,6 @@ struct global
|
||||
} state;
|
||||
} rmenu;
|
||||
|
||||
struct
|
||||
{
|
||||
bool enable;
|
||||
char launch_app[PATH_MAX];
|
||||
unsigned support;
|
||||
} external_launch;
|
||||
|
||||
struct
|
||||
{
|
||||
struct
|
||||
|
Loading…
x
Reference in New Issue
Block a user