diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 4838976479..eda91a1fc6 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -549,6 +549,8 @@ MSG_HASH(MENU_ENUM_LABEL_LOAD_ARCHIVE_DETECT_CORE, "load_archive_detect_core") MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY, "load_recent") +MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT_SPECIAL, + "load_special") MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT_LIST, "load_content") MSG_HASH(MENU_ENUM_LABEL_LOAD_STATE, diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 44c84e24df..a502000424 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -1170,6 +1170,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label( case MENU_ENUM_LABEL_LOAD_CONTENT_LIST: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_load_content_list); break; + case MENU_ENUM_LABEL_LOAD_CONTENT_SPECIAL: + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_load_content_special); + break; case MENU_ENUM_LABEL_INFORMATION_LIST: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_information_list); break; diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index b0ec800ef3..af40f56f8b 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -4658,6 +4658,7 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_ONLINE_UPDATER: case MENU_ENUM_LABEL_NETPLAY: case MENU_ENUM_LABEL_LOAD_CONTENT_LIST: + case MENU_ENUM_LABEL_LOAD_CONTENT_SPECIAL: case MENU_ENUM_LABEL_ADD_CONTENT_LIST: case MENU_ENUM_LABEL_CONFIGURATIONS_LIST: case MENU_ENUM_LABEL_HELP_LIST: diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 22196ab0c9..5d5a6fb7b0 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -138,6 +138,7 @@ default_sublabel_macro(action_bind_sublabel_cheevos_password, MENU_ default_sublabel_macro(action_bind_sublabel_video_post_filter_record, MENU_ENUM_SUBLABEL_VIDEO_POST_FILTER_RECORD) default_sublabel_macro(action_bind_sublabel_core_list, MENU_ENUM_SUBLABEL_CORE_LIST) default_sublabel_macro(action_bind_sublabel_content_list, MENU_ENUM_SUBLABEL_LOAD_CONTENT_LIST) +default_sublabel_macro(action_bind_sublabel_content_special, MENU_ENUM_SUBLABEL_LOAD_CONTENT_SPECIAL) default_sublabel_macro(action_bind_sublabel_network_information, MENU_ENUM_SUBLABEL_NETWORK_INFORMATION) default_sublabel_macro(action_bind_sublabel_system_information, MENU_ENUM_SUBLABEL_SYSTEM_INFORMATION) default_sublabel_macro(action_bind_sublabel_quit_retroarch, MENU_ENUM_SUBLABEL_QUIT_RETROARCH) @@ -980,6 +981,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_LOAD_CONTENT_LIST: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_content_list); break; + case MENU_ENUM_LABEL_LOAD_CONTENT_SPECIAL: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_content_special); + break; case MENU_ENUM_LABEL_CORE_LIST: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_core_list); break; diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index 438d6239a2..abe3bbd528 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -129,6 +129,7 @@ default_title_macro(action_get_audio_settings_list, MENU_ENUM_LABEL_ default_title_macro(action_get_input_settings_list, MENU_ENUM_LABEL_VALUE_INPUT_SETTINGS) default_title_macro(action_get_core_cheat_options_list, MENU_ENUM_LABEL_VALUE_CORE_CHEAT_OPTIONS) default_title_macro(action_get_load_content_list, MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST) +default_title_macro(action_get_load_content_special, MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_SPECIAL) default_title_macro(action_get_cursor_manager_list, MENU_ENUM_LABEL_VALUE_CURSOR_MANAGER) default_title_macro(action_get_database_manager_list, MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER) default_title_macro(action_get_system_information_list, MENU_ENUM_LABEL_VALUE_SYSTEM_INFORMATION) @@ -614,6 +615,9 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_CORE_LIST: BIND_ACTION_GET_TITLE(cbs, action_get_core_list); break; + case MENU_ENUM_LABEL_LOAD_CONTENT_SPECIAL: + BIND_ACTION_GET_TITLE(cbs, action_get_load_content_special); + break; case MENU_ENUM_LABEL_LOAD_CONTENT_LIST: BIND_ACTION_GET_TITLE(cbs, action_get_load_content_list); break; @@ -924,6 +928,9 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs, case MENU_LABEL_CORE_LIST: BIND_ACTION_GET_TITLE(cbs, action_get_core_list); break; + case MENU_ENUM_LABEL_LOAD_CONTENT_SPECIAL: + BIND_ACTION_GET_TITLE(cbs, action_get_load_content_special); + break; case MENU_LABEL_LOAD_CONTENT_LIST: BIND_ACTION_GET_TITLE(cbs, action_get_load_content_list); break; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index abf2006c1c..1c7610914b 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -2771,7 +2771,21 @@ static int menu_displaylist_parse_load_content_settings( bool show_advanced_settings = settings->bools.menu_show_advanced_settings; #endif rarch_system_info_t *system = runloop_get_system_info(); - + const struct retro_subsystem_info* subsystem = NULL; + subsystem = system->subsystem.data; + if (subsystem) + { + for (int p = 0; p < system->subsystem.size; p++, subsystem++) + { + char s[PATH_MAX_LENGTH]; + snprintf(s, sizeof(s), "%s (%s)", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST), subsystem->desc); + menu_entries_append_enum(info->list, + s, + msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT_SPECIAL), + MENU_ENUM_LABEL_LOAD_CONTENT_SPECIAL, + MENU_SETTING_ACTION, 0, 0); + } + } menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RESUME_CONTENT), msg_hash_to_str(MENU_ENUM_LABEL_RESUME_CONTENT), @@ -5872,7 +5886,10 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) info->need_refresh = true; break; case DISPLAYLIST_LOAD_CONTENT_LIST: + case DISPLAYLIST_LOAD_CONTENT_SPECIAL: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); + printf ("AAAAAAAAAAA %s\n", settings->paths.directory_menu_content); + fflush(stdout); if (!string_is_empty(settings->paths.directory_menu_content)) menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_FAVORITES), diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 59fa13e046..739713fa56 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -142,6 +142,7 @@ enum menu_displaylist_ctl_state DISPLAYLIST_BROWSE_URL_LIST, DISPLAYLIST_BROWSE_URL_START, DISPLAYLIST_LOAD_CONTENT_LIST, + DISPLAYLIST_LOAD_CONTENT_SPECIAL, DISPLAYLIST_INFORMATION_LIST, DISPLAYLIST_CONTENT_SETTINGS, DISPLAYLIST_OPTIONS, diff --git a/msg_hash.h b/msg_hash.h index c2a2874605..802833c220 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -929,6 +929,7 @@ enum msg_hash_enums MENU_LABEL(NETPLAY_SETTINGS), MENU_LABEL(CONTENT_SETTINGS), MENU_LABEL(LOAD_CONTENT_LIST), + MENU_LABEL(LOAD_CONTENT_SPECIAL), MENU_LABEL(NO_SETTINGS_FOUND), MENU_LABEL(NO_NETWORKS_FOUND), MENU_LABEL(NO_PERFORMANCE_COUNTERS),