Add option for suggesting cores when a core is loaded (#17920)
This commit is contained in:
parent
7d98987f9d
commit
0e4cf00d1f
|
@ -570,6 +570,7 @@
|
|||
#define DEFAULT_REMAP_SAVE_ON_EXIT true
|
||||
|
||||
#define DEFAULT_SHOW_HIDDEN_FILES false
|
||||
#define DEFAULT_CORE_SUGGEST_ALWAYS false
|
||||
|
||||
/* Initialise file browser with the last used start directory */
|
||||
#define DEFAULT_USE_LAST_START_DIRECTORY false
|
||||
|
|
|
@ -1812,6 +1812,7 @@ static struct config_bool_setting *populate_settings_bool(
|
|||
SETTING_BOOL("remap_save_on_exit", &settings->bools.remap_save_on_exit, true, DEFAULT_REMAP_SAVE_ON_EXIT, false);
|
||||
SETTING_BOOL("show_hidden_files", &settings->bools.show_hidden_files, true, DEFAULT_SHOW_HIDDEN_FILES, false);
|
||||
SETTING_BOOL("use_last_start_directory", &settings->bools.use_last_start_directory, true, DEFAULT_USE_LAST_START_DIRECTORY, false);
|
||||
SETTING_BOOL("core_suggest_always", &settings->bools.core_suggest_always, true, DEFAULT_CORE_SUGGEST_ALWAYS, false);
|
||||
SETTING_BOOL("camera_allow", &settings->bools.camera_allow, true, false, false);
|
||||
SETTING_BOOL("location_allow", &settings->bools.location_allow, true, false, false);
|
||||
SETTING_BOOL("cloud_sync_enable", &settings->bools.cloud_sync_enable, true, false, false);
|
||||
|
|
|
@ -731,7 +731,6 @@ typedef struct settings
|
|||
bool frame_time_counter_reset_after_save_state;
|
||||
|
||||
/* Menu */
|
||||
bool filter_by_current_core;
|
||||
bool menu_enable_widgets;
|
||||
bool menu_show_load_content_animation;
|
||||
bool notification_show_autoconfig;
|
||||
|
@ -1037,8 +1036,11 @@ typedef struct settings
|
|||
bool sort_screenshots_by_content_enable;
|
||||
bool config_save_on_exit;
|
||||
bool remap_save_on_exit;
|
||||
|
||||
bool show_hidden_files;
|
||||
bool filter_by_current_core;
|
||||
bool use_last_start_directory;
|
||||
bool core_suggest_always;
|
||||
|
||||
bool savefiles_in_content_dir;
|
||||
bool savestates_in_content_dir;
|
||||
|
|
|
@ -5002,6 +5002,14 @@ MSG_HASH(
|
|||
MENU_ENUM_SUBLABEL_USE_LAST_START_DIRECTORY,
|
||||
"Open File Browser at the last used location when loading content from the Start Directory. Note: Location will be reset to default upon restarting RetroArch."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CORE_SUGGEST_ALWAYS,
|
||||
"Always Suggest Cores"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CORE_SUGGEST_ALWAYS,
|
||||
"Suggest available cores even when a core is already loaded."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_USE_BUILTIN_PLAYER,
|
||||
"Use Built-In Media Player"
|
||||
|
|
|
@ -1930,6 +1930,7 @@ static bool menu_content_find_first_core(
|
|||
menu_content_ctx_defer_info_t *def_info,
|
||||
bool load_content_with_current_core, char *s, size_t len)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
const core_info_t *info = NULL;
|
||||
size_t supported = 0;
|
||||
core_info_list_t *core_info = (core_info_list_t*)def_info->data;
|
||||
|
@ -1961,6 +1962,11 @@ static bool menu_content_find_first_core(
|
|||
def_info->s, &info,
|
||||
&supported);
|
||||
|
||||
/* Don't suggest cores if a core is already loaded. */
|
||||
if ( !path_is_empty(RARCH_PATH_CORE)
|
||||
&& !settings->bools.core_suggest_always)
|
||||
load_content_with_current_core = true;
|
||||
|
||||
/* We started the menu with 'Load Content', we are
|
||||
* going to use the current core to load this. */
|
||||
if (load_content_with_current_core)
|
||||
|
@ -9691,8 +9697,7 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs,
|
|||
}
|
||||
else
|
||||
{
|
||||
if ( string_is_equal(menu_label, msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES))
|
||||
&& path_is_empty(RARCH_PATH_CORE))
|
||||
if (string_is_equal(menu_label, msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES)))
|
||||
BIND_ACTION_OK(cbs, action_ok_compressed_archive_push_detect_core);
|
||||
else
|
||||
BIND_ACTION_OK(cbs, action_ok_compressed_archive_push);
|
||||
|
|
|
@ -1069,6 +1069,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_playlist_entry_remove,
|
|||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_system_directory, MENU_ENUM_SUBLABEL_SYSTEM_DIRECTORY)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_rgui_browser_directory, MENU_ENUM_SUBLABEL_RGUI_BROWSER_DIRECTORY)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_use_last_start_directory, MENU_ENUM_SUBLABEL_USE_LAST_START_DIRECTORY)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_core_suggest_always, MENU_ENUM_SUBLABEL_CORE_SUGGEST_ALWAYS)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_content_dir, MENU_ENUM_SUBLABEL_CONTENT_DIR)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_dynamic_wallpapers_directory, MENU_ENUM_SUBLABEL_DYNAMIC_WALLPAPERS_DIRECTORY)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_thumbnails_directory, MENU_ENUM_SUBLABEL_THUMBNAILS_DIRECTORY)
|
||||
|
@ -4902,6 +4903,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
|||
case MENU_ENUM_LABEL_USE_LAST_START_DIRECTORY:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_use_last_start_directory);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_CORE_SUGGEST_ALWAYS:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_core_suggest_always);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_INPUT_MENU_ENUM_TOGGLE_GAMEPAD_COMBO:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_toggle_gamepad_combo);
|
||||
break;
|
||||
|
|
|
@ -10147,6 +10147,7 @@ unsigned menu_displaylist_build_list(
|
|||
{MENU_ENUM_LABEL_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_FILTER_BY_CURRENT_CORE, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_USE_LAST_START_DIRECTORY, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_CORE_SUGGEST_ALWAYS, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_USE_BUILTIN_PLAYER, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_USE_BUILTIN_IMAGE_VIEWER, PARSE_ONLY_BOOL},
|
||||
};
|
||||
|
|
|
@ -20015,20 +20015,6 @@ static bool setting_append_list(
|
|||
(*list)[list_info->index - 1].action_left = &setting_bool_action_left_with_refresh;
|
||||
(*list)[list_info->index - 1].action_right = &setting_bool_action_right_with_refresh;
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.use_last_start_directory,
|
||||
MENU_ENUM_LABEL_USE_LAST_START_DIRECTORY,
|
||||
MENU_ENUM_LABEL_VALUE_USE_LAST_START_DIRECTORY,
|
||||
false,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
END_SUB_GROUP(list, list_info, parent_group);
|
||||
END_GROUP(list, list_info, parent_group);
|
||||
|
@ -20057,6 +20043,51 @@ static bool setting_append_list(
|
|||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.filter_by_current_core,
|
||||
MENU_ENUM_LABEL_FILTER_BY_CURRENT_CORE,
|
||||
MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE,
|
||||
DEFAULT_FILTER_BY_CURRENT_CORE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.use_last_start_directory,
|
||||
MENU_ENUM_LABEL_USE_LAST_START_DIRECTORY,
|
||||
MENU_ENUM_LABEL_VALUE_USE_LAST_START_DIRECTORY,
|
||||
DEFAULT_USE_LAST_START_DIRECTORY,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.core_suggest_always,
|
||||
MENU_ENUM_LABEL_CORE_SUGGEST_ALWAYS,
|
||||
MENU_ENUM_LABEL_VALUE_CORE_SUGGEST_ALWAYS,
|
||||
DEFAULT_CORE_SUGGEST_ALWAYS,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
END_SUB_GROUP(list, list_info, parent_group);
|
||||
END_GROUP(list, list_info, parent_group);
|
||||
break;
|
||||
|
@ -20101,21 +20132,6 @@ static bool setting_append_list(
|
|||
SD_FLAG_NONE);
|
||||
#endif
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.filter_by_current_core,
|
||||
MENU_ENUM_LABEL_FILTER_BY_CURRENT_CORE,
|
||||
MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE,
|
||||
DEFAULT_FILTER_BY_CURRENT_CORE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
END_SUB_GROUP(list, list_info, parent_group);
|
||||
END_GROUP(list, list_info, parent_group);
|
||||
break;
|
||||
|
|
|
@ -2583,6 +2583,7 @@ enum msg_hash_enums
|
|||
MENU_LABEL(CONFIRM_ON_EXIT),
|
||||
MENU_LABEL(SHOW_HIDDEN_FILES),
|
||||
MENU_LABEL(USE_LAST_START_DIRECTORY),
|
||||
MENU_LABEL(CORE_SUGGEST_ALWAYS),
|
||||
|
||||
/* Driver settings */
|
||||
|
||||
|
|
|
@ -2470,7 +2470,6 @@ bool task_push_load_content_with_new_core_from_menu(
|
|||
|
||||
path_set(RARCH_PATH_CONTENT, fullpath);
|
||||
path_set(RARCH_PATH_CORE, core_path);
|
||||
path_clear(RARCH_PATH_CORE_LAST);
|
||||
|
||||
#ifdef HAVE_DYNAMIC
|
||||
/* Load core */
|
||||
|
|
Loading…
Reference in New Issue