mirror of
https://github.com/libretro/RetroArch
synced 2025-04-16 17:43:02 +00:00
Core info page cleanup and firmware icons (#17153)
This commit is contained in:
parent
d5dd3689fc
commit
cd4bca9178
@ -505,7 +505,7 @@ MSG_HASH(
|
|||||||
)
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_VALUE_CORE_INFO_CORE_PATH,
|
MENU_ENUM_LABEL_VALUE_CORE_INFO_CORE_PATH,
|
||||||
"Full path of core"
|
"Full Path"
|
||||||
)
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_VALUE_CORE_INFO_SAVESTATE_SUPPORT_LEVEL,
|
MENU_ENUM_LABEL_VALUE_CORE_INFO_SAVESTATE_SUPPORT_LEVEL,
|
||||||
@ -537,7 +537,7 @@ MSG_HASH(
|
|||||||
)
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_VALUE_CORE_INFO_FIRMWARE_PATH,
|
MENU_ENUM_LABEL_VALUE_CORE_INFO_FIRMWARE_PATH,
|
||||||
"- Looking in: '%s'"
|
"- Looking in: %s"
|
||||||
)
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_VALUE_MISSING_REQUIRED,
|
MENU_ENUM_LABEL_VALUE_MISSING_REQUIRED,
|
||||||
|
@ -10527,6 +10527,18 @@ static void materialui_list_insert(
|
|||||||
}
|
}
|
||||||
/* for other types we don't have an icon */
|
/* for other types we don't have an icon */
|
||||||
break;
|
break;
|
||||||
|
case MENU_SETTINGS_CORE_INFO_NONE:
|
||||||
|
node->icon_type = MUI_ICON_TYPE_INTERNAL;
|
||||||
|
if (strstr(path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MISSING_REQUIRED)))
|
||||||
|
node->icon_texture_index = MUI_TEXTURE_CLOSE;
|
||||||
|
else if (strstr(path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MISSING_OPTIONAL)))
|
||||||
|
node->icon_texture_index = MUI_TEXTURE_INFO;
|
||||||
|
else if (strstr(path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PRESENT_REQUIRED))
|
||||||
|
|| strstr(path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PRESENT_OPTIONAL)))
|
||||||
|
node->icon_texture_index = MUI_TEXTURE_CHECKMARK;
|
||||||
|
else
|
||||||
|
node->icon_type = MUI_ICON_TYPE_NONE;
|
||||||
|
break;
|
||||||
case FILE_TYPE_RPL_ENTRY:
|
case FILE_TYPE_RPL_ENTRY:
|
||||||
case MENU_SETTING_DROPDOWN_ITEM:
|
case MENU_SETTING_DROPDOWN_ITEM:
|
||||||
case MENU_SETTING_DROPDOWN_ITEM_RESOLUTION:
|
case MENU_SETTING_DROPDOWN_ITEM_RESOLUTION:
|
||||||
@ -10552,7 +10564,6 @@ static void materialui_list_insert(
|
|||||||
case MENU_SETTING_DROPDOWN_SETTING_FLOAT_ITEM_SPECIAL:
|
case MENU_SETTING_DROPDOWN_SETTING_FLOAT_ITEM_SPECIAL:
|
||||||
case MENU_SETTING_DROPDOWN_SETTING_INT_ITEM_SPECIAL:
|
case MENU_SETTING_DROPDOWN_SETTING_INT_ITEM_SPECIAL:
|
||||||
case MENU_SETTING_DROPDOWN_SETTING_UINT_ITEM_SPECIAL:
|
case MENU_SETTING_DROPDOWN_SETTING_UINT_ITEM_SPECIAL:
|
||||||
case MENU_SETTINGS_CORE_INFO_NONE:
|
|
||||||
case MENU_SETTING_ITEM_CORE_RESTORE_BACKUP:
|
case MENU_SETTING_ITEM_CORE_RESTORE_BACKUP:
|
||||||
case MENU_SETTING_ITEM_CORE_DELETE_BACKUP:
|
case MENU_SETTING_ITEM_CORE_DELETE_BACKUP:
|
||||||
/* None of these entries have icons - catch them
|
/* None of these entries have icons - catch them
|
||||||
|
@ -1946,6 +1946,15 @@ static uintptr_t ozone_entries_icon_get_texture(
|
|||||||
if (!string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_INFORMATION)))
|
if (!string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_INFORMATION)))
|
||||||
return 0;
|
return 0;
|
||||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE];
|
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE];
|
||||||
|
case MENU_ENUM_LABEL_CORE_INFO_ENTRY:
|
||||||
|
if (strstr(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MISSING_REQUIRED)))
|
||||||
|
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CLOSE];
|
||||||
|
else if (strstr(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MISSING_OPTIONAL)))
|
||||||
|
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INFO];
|
||||||
|
else if (strstr(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PRESENT_REQUIRED))
|
||||||
|
|| strstr(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PRESENT_OPTIONAL)))
|
||||||
|
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CHECKMARK];
|
||||||
|
return 0;
|
||||||
case MENU_ENUM_LABEL_LOAD_CONTENT_LIST:
|
case MENU_ENUM_LABEL_LOAD_CONTENT_LIST:
|
||||||
case MENU_ENUM_LABEL_SUBSYSTEM_SETTINGS:
|
case MENU_ENUM_LABEL_SUBSYSTEM_SETTINGS:
|
||||||
case MENU_ENUM_LABEL_SCAN_FILE:
|
case MENU_ENUM_LABEL_SCAN_FILE:
|
||||||
|
@ -3214,6 +3214,15 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb,
|
|||||||
case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SET_CORE_ASSOCIATION:
|
case MENU_ENUM_LABEL_QUICK_MENU_SHOW_SET_CORE_ASSOCIATION:
|
||||||
case MENU_ENUM_LABEL_CORE_INFORMATION:
|
case MENU_ENUM_LABEL_CORE_INFORMATION:
|
||||||
return xmb->textures.list[XMB_TEXTURE_CORE];
|
return xmb->textures.list[XMB_TEXTURE_CORE];
|
||||||
|
case MENU_ENUM_LABEL_CORE_INFO_ENTRY:
|
||||||
|
if (strstr(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MISSING_REQUIRED)))
|
||||||
|
return xmb->textures.list[XMB_TEXTURE_CLOSE];
|
||||||
|
else if (strstr(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MISSING_OPTIONAL)))
|
||||||
|
return xmb->textures.list[XMB_TEXTURE_INFO];
|
||||||
|
else if (strstr(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PRESENT_REQUIRED))
|
||||||
|
|| strstr(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PRESENT_OPTIONAL)))
|
||||||
|
return xmb->textures.list[XMB_TEXTURE_CHECKMARK];
|
||||||
|
break;
|
||||||
case MENU_ENUM_LABEL_LOAD_CONTENT_LIST:
|
case MENU_ENUM_LABEL_LOAD_CONTENT_LIST:
|
||||||
case MENU_ENUM_LABEL_SUBSYSTEM_SETTINGS:
|
case MENU_ENUM_LABEL_SUBSYSTEM_SETTINGS:
|
||||||
case MENU_ENUM_LABEL_SCAN_FILE:
|
case MENU_ENUM_LABEL_SCAN_FILE:
|
||||||
|
@ -544,6 +544,7 @@ static int menu_displaylist_parse_core_info(
|
|||||||
const char *savestate_support = NULL;
|
const char *savestate_support = NULL;
|
||||||
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
||||||
bool kiosk_mode_enable = settings->bools.kiosk_mode_enable;
|
bool kiosk_mode_enable = settings->bools.kiosk_mode_enable;
|
||||||
|
bool core_info_list_hide[64] = {false};
|
||||||
#if defined(HAVE_DYNAMIC)
|
#if defined(HAVE_DYNAMIC)
|
||||||
enum menu_contentless_cores_display_type
|
enum menu_contentless_cores_display_type
|
||||||
contentless_display_type = (enum menu_contentless_cores_display_type)
|
contentless_display_type = (enum menu_contentless_cores_display_type)
|
||||||
@ -845,36 +846,53 @@ static int menu_displaylist_parse_core_info(
|
|||||||
MENU_ENUM_LABEL_CORE_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE, 0, 0, NULL))
|
MENU_ENUM_LABEL_CORE_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE, 0, 0, NULL))
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
len = strlcpy(tmp, "(!) ", sizeof(tmp));
|
|
||||||
|
|
||||||
/* FIXME: This looks hacky and probably
|
|
||||||
* needs to be improved for good translation support. */
|
|
||||||
|
|
||||||
for (i = 0; i < core_info->firmware_count; i++)
|
for (i = 0; i < core_info->firmware_count; i++)
|
||||||
{
|
{
|
||||||
if (!core_info->firmware[i].desc)
|
if (!core_info->firmware[i].desc)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
snprintf(tmp + len, sizeof(tmp) - len, "%s %s",
|
snprintf(tmp, sizeof(tmp), "%s %s",
|
||||||
core_info->firmware[i].missing ?
|
core_info->firmware[i].missing
|
||||||
(
|
? (core_info->firmware[i].optional ? missing_optional : missing_required)
|
||||||
core_info->firmware[i].optional
|
: (core_info->firmware[i].optional ? present_optional : present_required),
|
||||||
? missing_optional
|
core_info->firmware[i].desc ? core_info->firmware[i].desc : rdb_entry_name
|
||||||
: missing_required)
|
);
|
||||||
:
|
|
||||||
(
|
|
||||||
core_info->firmware[i].optional
|
|
||||||
? present_optional
|
|
||||||
: present_required),
|
|
||||||
core_info->firmware[i].desc ?
|
|
||||||
core_info->firmware[i].desc :
|
|
||||||
rdb_entry_name
|
|
||||||
);
|
|
||||||
|
|
||||||
if (menu_entries_append(list, tmp, "",
|
if (menu_entries_append(list, tmp, "",
|
||||||
MENU_ENUM_LABEL_CORE_INFO_ENTRY,
|
MENU_ENUM_LABEL_CORE_INFO_ENTRY,
|
||||||
MENU_SETTINGS_CORE_INFO_NONE, 0, 0, NULL))
|
MENU_SETTINGS_CORE_INFO_NONE, 0, 0, NULL))
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
|
/* Show relevant note row and skip showing it later */
|
||||||
|
if (core_info->notes)
|
||||||
|
{
|
||||||
|
unsigned pos;
|
||||||
|
unsigned j;
|
||||||
|
char firmware_basename[64];
|
||||||
|
|
||||||
|
strlcpy(firmware_basename, core_info->firmware[i].desc, sizeof(firmware_basename));
|
||||||
|
path_basename(firmware_basename);
|
||||||
|
firmware_basename[string_find_index_substring_string(firmware_basename, " ")] = '\0';
|
||||||
|
|
||||||
|
for (j = 0; j < core_info->note_list->size; j++)
|
||||||
|
{
|
||||||
|
if ( !strstr(core_info->note_list->elems[j].data, firmware_basename)
|
||||||
|
|| !strstr(core_info->note_list->elems[j].data, "(md5)"))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
pos = string_find_index_substring_string(core_info->note_list->elems[j].data, "(md5)");
|
||||||
|
|
||||||
|
core_info_list_hide[j] = true;
|
||||||
|
len = strlcpy(tmp, "- ", sizeof(tmp));
|
||||||
|
strlcat(tmp, core_info->note_list->elems[j].data + pos, sizeof(tmp));
|
||||||
|
|
||||||
|
if (menu_entries_append(list, tmp, "",
|
||||||
|
MENU_ENUM_LABEL_CORE_INFO_ENTRY,
|
||||||
|
MENU_SETTINGS_CORE_INFO_NONE, 0, 0, NULL))
|
||||||
|
count++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -883,6 +901,9 @@ static int menu_displaylist_parse_core_info(
|
|||||||
{
|
{
|
||||||
for (i = 0; i < core_info->note_list->size; i++)
|
for (i = 0; i < core_info->note_list->size; i++)
|
||||||
{
|
{
|
||||||
|
if (core_info_list_hide[i])
|
||||||
|
continue;
|
||||||
|
|
||||||
strlcpy(tmp,
|
strlcpy(tmp,
|
||||||
core_info->note_list->elems[i].data, sizeof(tmp));
|
core_info->note_list->elems[i].data, sizeof(tmp));
|
||||||
if (menu_entries_append(list, tmp, "",
|
if (menu_entries_append(list, tmp, "",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user