(Subsystem Settings) Create separate subsystem settings list - will

be selectively hidden later based on whether subsystems are implemented
for the core
This commit is contained in:
twinaphex 2019-12-30 05:43:48 +01:00
parent f3742a101c
commit 3fe8806018
15 changed files with 80 additions and 37 deletions

View File

@ -399,6 +399,8 @@ MSG_HASH(MENU_ENUM_LABEL_DEFERRED_QUICK_MENU_VIEWS_SETTINGS_LIST,
"deferred_quick_menu_views_settings_list")
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_SETTINGS_VIEWS_SETTINGS_LIST,
"deferred_settings_views_settings_list")
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_SUBSYSTEM_SETTINGS_LIST,
"deferred_subsystem_settings_list")
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_NETWORK_HOSTING_SETTINGS_LIST,
"deferred_network_hosting_settings_list")
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_NETWORK_SETTINGS_LIST,
@ -861,6 +863,8 @@ MSG_HASH(MENU_ENUM_LABEL_NETWORK_REMOTE_USER_LAST_ENABLE,
"network_remote_user_last_enable")
MSG_HASH(MENU_ENUM_LABEL_NETWORK_ON_DEMAND_THUMBNAILS,
"network_on_demand_thumbnails")
MSG_HASH(MENU_ENUM_LABEL_SUBSYSTEM_SETTINGS,
"subsystem_settings")
MSG_HASH(MENU_ENUM_LABEL_NETWORK_HOSTING_SETTINGS,
"network_hosting_settings")
MSG_HASH(MENU_ENUM_LABEL_NETWORK_SETTINGS,

View File

@ -2171,6 +2171,10 @@ MSG_HASH(
MENU_ENUM_LABEL_VALUE_NETWORK_HOSTING_SETTINGS,
"Host"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_SUBSYSTEM_SETTINGS,
"Subsystems"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_NETWORK_SETTINGS,
"Network"

View File

@ -182,6 +182,7 @@ generic_deferred_push(deferred_push_retro_achievements_settings_list,DISPLAYLIST
generic_deferred_push(deferred_push_updater_settings_list, DISPLAYLIST_UPDATER_SETTINGS_LIST)
generic_deferred_push(deferred_push_wifi_settings_list, DISPLAYLIST_WIFI_SETTINGS_LIST)
generic_deferred_push(deferred_push_network_settings_list, DISPLAYLIST_NETWORK_SETTINGS_LIST)
generic_deferred_push(deferred_push_subsystem_settings_list, DISPLAYLIST_SUBSYSTEM_SETTINGS_LIST)
generic_deferred_push(deferred_push_network_hosting_settings_list, DISPLAYLIST_NETWORK_HOSTING_SETTINGS_LIST)
generic_deferred_push(deferred_push_lakka_services_list, DISPLAYLIST_LAKKA_SERVICES_LIST)
generic_deferred_push(deferred_push_user_settings_list, DISPLAYLIST_USER_SETTINGS_LIST)
@ -716,6 +717,7 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
{MENU_ENUM_LABEL_DEFERRED_RETRO_ACHIEVEMENTS_SETTINGS_LIST, deferred_push_retro_achievements_settings_list},
{MENU_ENUM_LABEL_DEFERRED_UPDATER_SETTINGS_LIST, deferred_push_updater_settings_list},
{MENU_ENUM_LABEL_DEFERRED_NETWORK_SETTINGS_LIST, deferred_push_network_settings_list},
{MENU_ENUM_LABEL_DEFERRED_SUBSYSTEM_SETTINGS_LIST, deferred_push_subsystem_settings_list},
{MENU_ENUM_LABEL_DEFERRED_NETWORK_HOSTING_SETTINGS_LIST, deferred_push_network_hosting_settings_list},
{MENU_ENUM_LABEL_DEFERRED_WIFI_SETTINGS_LIST, deferred_push_wifi_settings_list},
{MENU_ENUM_LABEL_DEFERRED_LAKKA_SERVICES_LIST, deferred_push_lakka_services_list},

View File

@ -280,6 +280,8 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl)
return MENU_ENUM_LABEL_DEFERRED_UPDATER_SETTINGS_LIST;
case ACTION_OK_DL_NETWORK_HOSTING_SETTINGS_LIST:
return MENU_ENUM_LABEL_DEFERRED_NETWORK_HOSTING_SETTINGS_LIST;
case ACTION_OK_DL_SUBSYSTEM_SETTINGS_LIST:
return MENU_ENUM_LABEL_DEFERRED_SUBSYSTEM_SETTINGS_LIST;
case ACTION_OK_DL_NETWORK_SETTINGS_LIST:
return MENU_ENUM_LABEL_DEFERRED_NETWORK_SETTINGS_LIST;
case ACTION_OK_DL_WIFI_SETTINGS_LIST:
@ -1112,6 +1114,7 @@ int generic_action_ok_displaylist_push(const char *path,
case ACTION_OK_DL_UPDATER_SETTINGS_LIST:
case ACTION_OK_DL_NETWORK_SETTINGS_LIST:
case ACTION_OK_DL_NETWORK_HOSTING_SETTINGS_LIST:
case ACTION_OK_DL_SUBSYSTEM_SETTINGS_LIST:
case ACTION_OK_DL_WIFI_SETTINGS_LIST:
case ACTION_OK_DL_NETPLAY:
case ACTION_OK_DL_NETPLAY_LAN_SCAN_SETTINGS_LIST:
@ -4793,6 +4796,7 @@ default_action_ok_func(action_ok_configurations_list, ACTION_OK_DL_CONFIGURATION
default_action_ok_func(action_ok_saving_list, ACTION_OK_DL_SAVING_SETTINGS_LIST)
default_action_ok_func(action_ok_network_list, ACTION_OK_DL_NETWORK_SETTINGS_LIST)
default_action_ok_func(action_ok_network_hosting_list, ACTION_OK_DL_NETWORK_HOSTING_SETTINGS_LIST)
default_action_ok_func(action_ok_subsystem_list, ACTION_OK_DL_SUBSYSTEM_SETTINGS_LIST)
default_action_ok_func(action_ok_database_manager_list, ACTION_OK_DL_DATABASE_MANAGER_LIST)
default_action_ok_func(action_ok_wifi_list, ACTION_OK_DL_WIFI_SETTINGS_LIST)
default_action_ok_func(action_ok_cursor_manager_list, ACTION_OK_DL_CURSOR_MANAGER_LIST)
@ -6950,6 +6954,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_NETWORK_HOSTING_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_network_hosting_list);
break;
case MENU_ENUM_LABEL_SUBSYSTEM_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_subsystem_list);
break;
case MENU_ENUM_LABEL_NETWORK_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_network_list);
break;

View File

@ -377,6 +377,7 @@ default_title_macro(action_get_menu_file_browser_settings_list, MENU_ENUM_LABEL_
default_title_macro(action_get_retro_achievements_settings_list,MENU_ENUM_LABEL_VALUE_RETRO_ACHIEVEMENTS_SETTINGS)
default_title_macro(action_get_wifi_settings_list, MENU_ENUM_LABEL_VALUE_WIFI_SETTINGS)
default_title_macro(action_get_network_hosting_settings_list, MENU_ENUM_LABEL_VALUE_NETWORK_HOSTING_SETTINGS)
default_title_macro(action_get_subsystem_settings_list, MENU_ENUM_LABEL_VALUE_SUBSYSTEM_SETTINGS)
default_title_macro(action_get_network_settings_list, MENU_ENUM_LABEL_VALUE_NETWORK_SETTINGS)
default_title_macro(action_get_netplay_lan_scan_settings_list, MENU_ENUM_LABEL_VALUE_NETPLAY_LAN_SCAN_SETTINGS)
#ifdef HAVE_LAKKA
@ -666,6 +667,7 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
{MENU_ENUM_LABEL_DEFERRED_WIFI_SETTINGS_LIST, action_get_wifi_settings_list},
{MENU_ENUM_LABEL_DEFERRED_UPDATER_SETTINGS_LIST, action_get_updater_settings_list},
{MENU_ENUM_LABEL_DEFERRED_NETWORK_HOSTING_SETTINGS_LIST, action_get_network_hosting_settings_list},
{MENU_ENUM_LABEL_DEFERRED_SUBSYSTEM_SETTINGS_LIST, action_get_subsystem_settings_list},
{MENU_ENUM_LABEL_DEFERRED_NETWORK_SETTINGS_LIST, action_get_network_settings_list},
{MENU_ENUM_LABEL_DEFERRED_NETPLAY_LAN_SCAN_SETTINGS_LIST, action_get_netplay_lan_scan_settings_list},
#ifdef HAVE_LAKKA

View File

@ -6675,19 +6675,11 @@ static int materialui_list_push(void *data, void *userdata,
if (settings->bools.menu_show_load_content)
{
const struct retro_subsystem_info* subsystem;
entry.enum_idx = MENU_ENUM_LABEL_LOAD_CONTENT_LIST;
menu_displaylist_setting(&entry);
/* Core fully loaded, use the subsystem data */
if (system->subsystem.data)
subsystem = system->subsystem.data;
/* Core not loaded completely, use the data we peeked on load core */
else
subsystem = subsystem_data;
menu_subsystem_populate(subsystem, info->list);
entry.enum_idx = MENU_ENUM_LABEL_SUBSYSTEM_SETTINGS;
menu_displaylist_setting(&entry);
}
if (settings->bools.menu_content_show_history)

View File

@ -831,19 +831,11 @@ static int ozone_list_push(void *data, void *userdata,
if (settings->bools.menu_show_load_content)
{
const struct retro_subsystem_info* subsystem;
entry.enum_idx = MENU_ENUM_LABEL_LOAD_CONTENT_LIST;
menu_displaylist_setting(&entry);
/* Core fully loaded, use the subsystem data */
if (system->subsystem.data)
subsystem = system->subsystem.data;
/* Core not loaded completely, use the data we peeked on load core */
else
subsystem = subsystem_data;
menu_subsystem_populate(subsystem, info->list);
entry.enum_idx = MENU_ENUM_LABEL_SUBSYSTEM_SETTINGS;
menu_displaylist_setting(&entry);
}
if (settings->bools.menu_show_load_disc)

View File

@ -6178,20 +6178,14 @@ static int xmb_list_push(void *data, void *userdata,
if (settings->bools.menu_show_load_content)
{
const struct retro_subsystem_info* subsystem;
entry.enum_idx = MENU_ENUM_LABEL_LOAD_CONTENT_LIST;
menu_displaylist_setting(&entry);
/* Core fully loaded, use the subsystem data */
if (system->subsystem.data)
subsystem = system->subsystem.data;
/* Core not loaded completely, use the data we peeked on load core */
else
subsystem = subsystem_data;
menu_subsystem_populate(subsystem, info->list);
entry.enum_idx = MENU_ENUM_LABEL_SUBSYSTEM_SETTINGS;
menu_displaylist_setting(&entry);
}
if (settings->bools.menu_show_load_disc)
{
entry.enum_idx = MENU_ENUM_LABEL_LOAD_DISC;

View File

@ -173,6 +173,7 @@ enum
ACTION_OK_DL_UPDATER_SETTINGS_LIST,
ACTION_OK_DL_WIFI_SETTINGS_LIST,
ACTION_OK_DL_NETWORK_SETTINGS_LIST,
ACTION_OK_DL_SUBSYSTEM_SETTINGS_LIST,
ACTION_OK_DL_NETWORK_HOSTING_SETTINGS_LIST,
ACTION_OK_DL_NETPLAY_LAN_SCAN_SETTINGS_LIST,
ACTION_OK_DL_LAKKA_SERVICES_LIST,

View File

@ -7007,6 +7007,34 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
switch (type)
{
case DISPLAYLIST_SUBSYSTEM_SETTINGS_LIST:
{
const struct retro_subsystem_info* subsystem = subsystem_data;
rarch_system_info_t *sys_info =
runloop_get_system_info();
/* Core not loaded completely, use the data we
* peeked on load core */
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
/* Core fully loaded, use the subsystem data */
if (sys_info && sys_info->subsystem.data)
subsystem = sys_info->subsystem.data;
count = menu_subsystem_populate(subsystem, info->list);
if (count == 0)
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ENTRIES_TO_DISPLAY),
msg_hash_to_str(MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY),
MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY,
FILE_TYPE_NONE, 0, 0);
info->need_push = true;
info->need_refresh = true;
info->need_clear = true;
}
break;
case DISPLAYLIST_NETWORK_HOSTING_SETTINGS_LIST:
#ifdef HAVE_NETWORKING
{

View File

@ -136,6 +136,7 @@ enum menu_displaylist_ctl_state
DISPLAYLIST_ACHIEVEMENT_LIST,
DISPLAYLIST_USER_BINDS_LIST,
DISPLAYLIST_ACCOUNTS_LIST,
DISPLAYLIST_SUBSYSTEM_SETTINGS_LIST,
DISPLAYLIST_MIXER_STREAM_SETTINGS_LIST,
DISPLAYLIST_DRIVER_SETTINGS_LIST,
DISPLAYLIST_VIDEO_FULLSCREEN_MODE_SETTINGS_LIST,

View File

@ -3966,8 +3966,9 @@ void hex32_to_rgba_normalized(uint32_t hex, float* rgba, float alpha)
rgba[3] = rgba[7] = rgba[11] = rgba[15] = alpha;
}
void menu_subsystem_populate(const struct retro_subsystem_info* subsystem, void *data)
unsigned menu_subsystem_populate(const struct retro_subsystem_info* subsystem, void *data)
{
unsigned count = 0;
settings_t *settings = config_get_ptr();
file_list_t *list = (file_list_t*)data;
/* Note: Create this string here explicitly (rather than
@ -4038,11 +4039,12 @@ void menu_subsystem_populate(const struct retro_subsystem_info* subsystem, void
strlcpy(s, tmp, sizeof(s));
}
menu_entries_append_enum(list,
if (menu_entries_append_enum(list,
s,
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_ADD),
MENU_ENUM_LABEL_SUBSYSTEM_ADD,
MENU_SETTINGS_SUBSYSTEM_ADD + i, 0, 0);
MENU_SETTINGS_SUBSYSTEM_ADD + i, 0, 0))
count++;
}
else
{
@ -4085,11 +4087,12 @@ void menu_subsystem_populate(const struct retro_subsystem_info* subsystem, void
}
}
menu_entries_append_enum(list,
if (menu_entries_append_enum(list,
s,
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_LOAD),
MENU_ENUM_LABEL_SUBSYSTEM_LOAD,
MENU_SETTINGS_SUBSYSTEM_LOAD, 0, 0);
MENU_SETTINGS_SUBSYSTEM_LOAD, 0, 0))
count++;
}
}
else
@ -4126,14 +4129,17 @@ void menu_subsystem_populate(const struct retro_subsystem_info* subsystem, void
}
}
menu_entries_append_enum(list,
if (menu_entries_append_enum(list,
s,
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_ADD),
MENU_ENUM_LABEL_SUBSYSTEM_ADD,
MENU_SETTINGS_SUBSYSTEM_ADD + i, 0, 0);
MENU_SETTINGS_SUBSYSTEM_ADD + i, 0, 0))
count++;
}
}
}
return count;
}

View File

@ -713,7 +713,7 @@ void menu_driver_destroy(void);
void hex32_to_rgba_normalized(uint32_t hex, float* rgba, float alpha);
void menu_subsystem_populate(const struct retro_subsystem_info* subsystem, void *data);
unsigned menu_subsystem_populate(const struct retro_subsystem_info* subsystem, void *data);
menu_handle_t *menu_driver_get_ptr(void);

View File

@ -7479,6 +7479,14 @@ static bool setting_append_list(
&subgroup_info,
parent_group);
CONFIG_ACTION(
list, list_info,
MENU_ENUM_LABEL_SUBSYSTEM_SETTINGS,
MENU_ENUM_LABEL_VALUE_SUBSYSTEM_SETTINGS,
&group_info,
&subgroup_info,
parent_group);
if (settings->bools.history_list_enable)
{
CONFIG_ACTION(

View File

@ -1186,6 +1186,7 @@ enum msg_hash_enums
MENU_LABEL(DIRECTORY_SETTINGS),
MENU_LABEL(PRIVACY_SETTINGS),
MENU_LABEL(MIDI_SETTINGS),
MENU_LABEL(SUBSYSTEM_SETTINGS),
MENU_LABEL(NETWORK_HOSTING_SETTINGS),
MENU_LABEL(NETWORK_SETTINGS),
MENU_LABEL(NETPLAY_LAN_SCAN_SETTINGS),
@ -1348,6 +1349,7 @@ enum msg_hash_enums
MENU_ENUM_LABEL_DEFERRED_RETRO_ACHIEVEMENTS_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_UPDATER_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_WIFI_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_SUBSYSTEM_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_NETWORK_HOSTING_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_NETWORK_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_NETPLAY_LAN_SCAN_SETTINGS_LIST,