mirror of
https://github.com/libretro/RetroArch
synced 2025-04-02 07:20:34 +00:00
Added new MENU_FILE_ types and made the menu recognize them. Also set MENU_FILE_ type by RARCH_FILE type
This commit is contained in:
parent
cfd9e64f78
commit
477eb802f7
frontend/menu
@ -66,6 +66,8 @@ typedef enum
|
|||||||
MENU_FILE_PLAYLIST_ENTRY,
|
MENU_FILE_PLAYLIST_ENTRY,
|
||||||
MENU_FILE_USE_DIRECTORY,
|
MENU_FILE_USE_DIRECTORY,
|
||||||
MENU_FILE_SWITCH,
|
MENU_FILE_SWITCH,
|
||||||
|
MENU_FILE_CARCHIVE,
|
||||||
|
MENU_FILE_IN_CARCHIVE,
|
||||||
MENU_SETTINGS,
|
MENU_SETTINGS,
|
||||||
} menu_file_type_t;
|
} menu_file_type_t;
|
||||||
|
|
||||||
|
@ -629,6 +629,7 @@ int menu_parse_check(const char *label, unsigned menu_type)
|
|||||||
RARCH_LOG("label is menu_parse_check: %s\n", label);
|
RARCH_LOG("label is menu_parse_check: %s\n", label);
|
||||||
#endif
|
#endif
|
||||||
if (!((menu_type == MENU_FILE_DIRECTORY ||
|
if (!((menu_type == MENU_FILE_DIRECTORY ||
|
||||||
|
menu_type == MENU_FILE_CARCHIVE ||
|
||||||
menu_common_type_is(label, menu_type) == MENU_SETTINGS_SHADER_OPTIONS ||
|
menu_common_type_is(label, menu_type) == MENU_SETTINGS_SHADER_OPTIONS ||
|
||||||
menu_common_type_is(label, menu_type) == MENU_FILE_DIRECTORY ||
|
menu_common_type_is(label, menu_type) == MENU_FILE_DIRECTORY ||
|
||||||
!strcmp(label, "input_overlay") ||
|
!strcmp(label, "input_overlay") ||
|
||||||
@ -793,7 +794,17 @@ int menu_parse_and_resolve(file_list_t *list, file_list_t *menu_list)
|
|||||||
else
|
else
|
||||||
exts = g_extern.system.valid_extensions;
|
exts = g_extern.system.valid_extensions;
|
||||||
|
|
||||||
struct string_list *str_list = dir_list_new(dir, exts, true);
|
struct string_list *str_list = NULL;
|
||||||
|
|
||||||
|
if (path_is_compressed_file(dir))
|
||||||
|
{
|
||||||
|
printf("Uncompressing file_list from dir\n.");
|
||||||
|
str_list = compressed_file_list_new(dir,exts);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
str_list = dir_list_new(dir, exts, true);
|
||||||
|
}
|
||||||
if (!str_list)
|
if (!str_list)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@ -806,7 +817,24 @@ int menu_parse_and_resolve(file_list_t *list, file_list_t *menu_list)
|
|||||||
list_size = str_list->size;
|
list_size = str_list->size;
|
||||||
for (i = 0; i < str_list->size; i++)
|
for (i = 0; i < str_list->size; i++)
|
||||||
{
|
{
|
||||||
bool is_dir = (str_list->elems[i].attr.i == RARCH_DIRECTORY);
|
menu_file_type_t file_type = 0;
|
||||||
|
switch (str_list->elems[i].attr.i)
|
||||||
|
{
|
||||||
|
case RARCH_DIRECTORY:
|
||||||
|
file_type = MENU_FILE_DIRECTORY;
|
||||||
|
break;
|
||||||
|
case RARCH_COMPRESSED_ARCHIVE:
|
||||||
|
file_type = MENU_FILE_CARCHIVE;
|
||||||
|
break;
|
||||||
|
case RARCH_COMPRESSED_FILE_IN_ARCHIVE:
|
||||||
|
file_type = MENU_FILE_IN_CARCHIVE;
|
||||||
|
break;
|
||||||
|
case RARCH_PLAIN_FILE:
|
||||||
|
default:
|
||||||
|
file_type = MENU_FILE_PLAIN;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
bool is_dir = (file_type == MENU_FILE_DIRECTORY);
|
||||||
|
|
||||||
if ((menu_common_type_is(label, menu_type) == MENU_FILE_DIRECTORY) && !is_dir)
|
if ((menu_common_type_is(label, menu_type) == MENU_FILE_DIRECTORY) && !is_dir)
|
||||||
continue;
|
continue;
|
||||||
@ -827,11 +855,17 @@ int menu_parse_and_resolve(file_list_t *list, file_list_t *menu_list)
|
|||||||
/* Push menu_type further down in the chain.
|
/* Push menu_type further down in the chain.
|
||||||
* Needed for shader manager currently. */
|
* Needed for shader manager currently. */
|
||||||
if (!strcmp(label, "core_list"))
|
if (!strcmp(label, "core_list"))
|
||||||
|
{
|
||||||
|
/* Compressed cores are unsupported */
|
||||||
|
if (file_type == MENU_FILE_CARCHIVE)
|
||||||
|
continue;
|
||||||
|
|
||||||
file_list_push(list, path, "",
|
file_list_push(list, path, "",
|
||||||
is_dir ? MENU_FILE_DIRECTORY : MENU_FILE_CORE, 0);
|
is_dir ? MENU_FILE_DIRECTORY : MENU_FILE_CORE, 0);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
file_list_push(list, path, "",
|
file_list_push(list, path, "",
|
||||||
is_dir ? MENU_FILE_DIRECTORY : MENU_FILE_PLAIN, 0);
|
file_type, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
menu_entries_push_list(driver.menu, list,
|
menu_entries_push_list(driver.menu, list,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user