Add 'load_content' parameter to parse_drive_list

This commit is contained in:
twinaphex 2017-05-26 15:52:38 +02:00
parent f89f6119e7
commit e2a6a7ad17
15 changed files with 88 additions and 60 deletions

View File

@ -381,10 +381,13 @@ enum frontend_architecture frontend_ctr_get_architecture(void)
return FRONTEND_ARCH_ARM; return FRONTEND_ARCH_ARM;
} }
static int frontend_ctr_parse_drive_list(void *data) static int frontend_ctr_parse_drive_list(void *data, bool load_content)
{ {
#ifndef IS_SALAMANDER #ifndef IS_SALAMANDER
file_list_t *list = (file_list_t*)data; file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
if (!list) if (!list)
return -1; return -1;
@ -392,7 +395,7 @@ static int frontend_ctr_parse_drive_list(void *data)
menu_entries_append_enum(list, menu_entries_append_enum(list,
"sdmc:/", "sdmc:/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#endif #endif

View File

@ -625,7 +625,7 @@ static enum frontend_architecture frontend_darwin_get_architecture(void)
#endif #endif
} }
static int frontend_darwin_parse_drive_list(void *data) static int frontend_darwin_parse_drive_list(void *data, bool load_content)
{ {
int ret = -1; int ret = -1;
#if TARGET_OS_IPHONE #if TARGET_OS_IPHONE
@ -636,6 +636,9 @@ static int frontend_darwin_parse_drive_list(void *data)
char bundle_path_buf[PATH_MAX_LENGTH] = {0}; char bundle_path_buf[PATH_MAX_LENGTH] = {0};
char home_dir_buf[PATH_MAX_LENGTH] = {0}; char home_dir_buf[PATH_MAX_LENGTH] = {0};
CFBundleRef bundle = CFBundleGetMainBundle(); CFBundleRef bundle = CFBundleGetMainBundle();
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
bundle_url = CFBundleCopyBundleURL(bundle); bundle_url = CFBundleCopyBundleURL(bundle);
bundle_path = CFURLCopyPath(bundle_url); bundle_path = CFURLCopyPath(bundle_url);
@ -648,11 +651,11 @@ static int frontend_darwin_parse_drive_list(void *data)
menu_entries_append_enum(list, menu_entries_append_enum(list,
home_dir_buf, home_dir_buf,
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, "/", menu_entries_append_enum(list, "/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
ret = 0; ret = 0;

View File

@ -469,31 +469,34 @@ static enum frontend_architecture frontend_gx_get_architecture(void)
return FRONTEND_ARCH_PPC; return FRONTEND_ARCH_PPC;
} }
static int frontend_gx_parse_drive_list(void *data) static int frontend_gx_parse_drive_list(void *data, bool load_content)
{ {
#ifndef IS_SALAMANDER #ifndef IS_SALAMANDER
file_list_t *list = (file_list_t*)data; file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
#ifdef HW_RVL #ifdef HW_RVL
menu_entries_append_enum(list, menu_entries_append_enum(list,
"sd:/", "sd:/",
msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR), msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"usb:/", "usb:/",
msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR), msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#endif #endif
menu_entries_append_enum(list, menu_entries_append_enum(list,
"carda:/", "carda:/",
msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR), msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"cardb:/", "cardb:/",
msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR), msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#endif #endif

View File

@ -1965,10 +1965,13 @@ static void frontend_linux_init(void *data)
} }
static int frontend_linux_parse_drive_list(void *data) static int frontend_linux_parse_drive_list(void *data, bool load_content)
{ {
#ifdef HAVE_MENU #ifdef HAVE_MENU
file_list_t *list = (file_list_t*)data; file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
#ifdef ANDROID #ifdef ANDROID
if (!string_is_empty(app_dir)) if (!string_is_empty(app_dir))
@ -1976,7 +1979,7 @@ static int frontend_linux_parse_drive_list(void *data)
menu_entries_append_enum(list, menu_entries_append_enum(list,
app_dir, app_dir,
msg_hash_to_str(MSG_APPLICATION_DIR), msg_hash_to_str(MSG_APPLICATION_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
} }
if (!string_is_empty(internal_storage_app_path)) if (!string_is_empty(internal_storage_app_path))
@ -1984,7 +1987,7 @@ static int frontend_linux_parse_drive_list(void *data)
menu_entries_append_enum(list, menu_entries_append_enum(list,
internal_storage_app_path, internal_storage_app_path,
msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR), msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
} }
if (!string_is_empty(internal_storage_path)) if (!string_is_empty(internal_storage_path))
@ -1992,7 +1995,7 @@ static int frontend_linux_parse_drive_list(void *data)
menu_entries_append_enum(list, menu_entries_append_enum(list,
internal_storage_path, internal_storage_path,
msg_hash_to_str(MSG_INTERNAL_STORAGE), msg_hash_to_str(MSG_INTERNAL_STORAGE),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
} }
else else
@ -2000,19 +2003,19 @@ static int frontend_linux_parse_drive_list(void *data)
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/storage/emulated/0", "/storage/emulated/0",
msg_hash_to_str(MSG_REMOVABLE_STORAGE), msg_hash_to_str(MSG_REMOVABLE_STORAGE),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
} }
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/storage", "/storage",
msg_hash_to_str(MSG_REMOVABLE_STORAGE), msg_hash_to_str(MSG_REMOVABLE_STORAGE),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#endif #endif
menu_entries_append_enum(list, "/", menu_entries_append_enum(list, "/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#endif #endif

View File

@ -504,70 +504,73 @@ enum frontend_architecture frontend_ps3_get_architecture(void)
return FRONTEND_ARCH_PPC; return FRONTEND_ARCH_PPC;
} }
static int frontend_ps3_parse_drive_list(void *data) static int frontend_ps3_parse_drive_list(void *data, bool load_content)
{ {
#ifndef IS_SALAMANDER #ifndef IS_SALAMANDER
file_list_t *list = (file_list_t*)data; file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/app_home/", "/app_home/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/dev_hdd0/", "/dev_hdd0/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/dev_hdd1/", "/dev_hdd1/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/dev_bdvd/", "/dev_bdvd/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/host_root/", "/host_root/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/dev_usb000/", "/dev_usb000/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/dev_usb001/", "/dev_usb001/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/dev_usb002/", "/dev_usb002/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/dev_usb003/", "/dev_usb003/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/dev_usb004/", "/dev_usb004/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/dev_usb005/", "/dev_usb005/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"/dev_usb006/", "/dev_usb006/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#endif #endif

View File

@ -438,42 +438,45 @@ enum frontend_architecture frontend_psp_get_architecture(void)
#endif #endif
} }
static int frontend_psp_parse_drive_list(void *data) static int frontend_psp_parse_drive_list(void *data, bool load_content)
{ {
#ifndef IS_SALAMANDER #ifndef IS_SALAMANDER
file_list_t *list = (file_list_t*)data; file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
#ifdef VITA #ifdef VITA
menu_entries_append_enum(list, menu_entries_append_enum(list,
"app0:/", "app0:/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"ur0:/", "ur0:/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"ux0:/", "ux0:/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#else #else
menu_entries_append_enum(list, menu_entries_append_enum(list,
"ms0:/", "ms0:/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"ef0:/", "ef0:/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"host0:/", "host0:/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#endif #endif
#endif #endif

View File

@ -152,22 +152,25 @@ enum frontend_architecture frontend_wiiu_get_architecture(void)
return FRONTEND_ARCH_PPC; return FRONTEND_ARCH_PPC;
} }
static int frontend_wiiu_parse_drive_list(void *data) static int frontend_wiiu_parse_drive_list(void *data, bool load_content)
{ {
#ifndef IS_SALAMANDER #ifndef IS_SALAMANDER
file_list_t *list = (file_list_t *)data; file_list_t *list = (file_list_t *)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
if (!list) if (!list)
return -1; return -1;
menu_entries_append_enum(list, WIIU_SD_PATH, menu_entries_append_enum(list, WIIU_SD_PATH,
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, WIIU_USB_PATH, menu_entries_append_enum(list, WIIU_USB_PATH,
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#endif #endif
return 0; return 0;

View File

@ -232,13 +232,16 @@ enum frontend_architecture frontend_win32_get_architecture(void)
return FRONTEND_ARCH_NONE; return FRONTEND_ARCH_NONE;
} }
static int frontend_win32_parse_drive_list(void *data) static int frontend_win32_parse_drive_list(void *data, bool load_content)
{ {
#ifdef HAVE_MENU #ifdef HAVE_MENU
size_t i = 0; size_t i = 0;
unsigned drives = GetLogicalDrives(); unsigned drives = GetLogicalDrives();
char drive[] = " :\\"; char drive[] = " :\\";
file_list_t *list = (file_list_t*)data; file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
for (i = 0; i < 32; i++) for (i = 0; i < 32; i++)
{ {
@ -247,7 +250,7 @@ static int frontend_win32_parse_drive_list(void *data)
menu_entries_append_enum(list, menu_entries_append_enum(list,
drive, drive,
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
} }
#endif #endif

View File

@ -1383,42 +1383,45 @@ enum frontend_architecture frontend_xdk_get_architecture(void)
#endif #endif
} }
static int frontend_xdk_parse_drive_list(void *data) static int frontend_xdk_parse_drive_list(void *data, bool load_content)
{ {
#ifndef IS_SALAMANDER #ifndef IS_SALAMANDER
file_list_t *list = (file_list_t*)data; file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
#if defined(_XBOX1) #if defined(_XBOX1)
menu_entries_append_enum(list, menu_entries_append_enum(list,
"C:", "C:",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"D:", "D:",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"E:", "E:",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"F:", "F:",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(list, menu_entries_append_enum(list,
"G:", "G:",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#elif defined(_XBOX360) #elif defined(_XBOX360)
menu_entries_append_enum(list, menu_entries_append_enum(list,
"game:", "game:",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, enum_idx,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#endif #endif
#endif #endif

View File

@ -202,13 +202,13 @@ frontend_ctx_driver_t *frontend_get_ptr(void)
return current_frontend_ctx; return current_frontend_ctx;
} }
int frontend_driver_parse_drive_list(void *data) int frontend_driver_parse_drive_list(void *data, bool load_content)
{ {
frontend_ctx_driver_t *frontend = frontend_get_ptr(); frontend_ctx_driver_t *frontend = frontend_get_ptr();
if (!frontend || !frontend->parse_drive_list) if (!frontend || !frontend->parse_drive_list)
return -1; return -1;
return frontend->parse_drive_list(data); return frontend->parse_drive_list(data, load_content);
} }
void frontend_driver_content_loaded(void) void frontend_driver_content_loaded(void)

View File

@ -76,7 +76,7 @@ typedef struct frontend_ctx_driver
void (*content_loaded)(void); void (*content_loaded)(void);
enum frontend_architecture (*get_architecture)(void); enum frontend_architecture (*get_architecture)(void);
enum frontend_powerstate (*get_powerstate)(int *seconds, int *percent); enum frontend_powerstate (*get_powerstate)(int *seconds, int *percent);
int (*parse_drive_list)(void*); int (*parse_drive_list)(void*, bool);
uint64_t (*get_total_mem)(void); uint64_t (*get_total_mem)(void);
uint64_t (*get_used_mem)(void); uint64_t (*get_used_mem)(void);
void (*install_signal_handler)(void); void (*install_signal_handler)(void);
@ -131,7 +131,7 @@ frontend_ctx_driver_t *frontend_get_ptr(void);
**/ **/
frontend_ctx_driver_t *frontend_ctx_init_first(void); frontend_ctx_driver_t *frontend_ctx_init_first(void);
int frontend_driver_parse_drive_list(void *data); int frontend_driver_parse_drive_list(void *data, bool load_content);
void frontend_driver_content_loaded(void); void frontend_driver_content_loaded(void);

View File

@ -1780,7 +1780,7 @@ static int mui_list_push(void *data, void *userdata,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
} }
if (frontend_driver_parse_drive_list(info->list) != 0) if (frontend_driver_parse_drive_list(info->list, true) != 0)
menu_entries_append_enum(info->list, "/", menu_entries_append_enum(info->list, "/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR,

View File

@ -76,7 +76,7 @@ bool nk_wnd_file_picker(nk_menu_handle_t *nk, char* title, char* in, char* out,
if (!drives) if (!drives)
{ {
drives = (file_list_t*)calloc(1, sizeof(file_list_t)); drives = (file_list_t*)calloc(1, sizeof(file_list_t));
frontend_driver_parse_drive_list(drives); frontend_driver_parse_drive_list(drives, false);
} }
if (!string_is_empty(in) && string_is_empty(path)) if (!string_is_empty(in) && string_is_empty(path))

View File

@ -3380,7 +3380,7 @@ static int menu_displaylist_parse_playlists(
if (string_is_empty(info->path)) if (string_is_empty(info->path))
{ {
if (frontend_driver_parse_drive_list(info->list) != 0) if (frontend_driver_parse_drive_list(info->list, true) != 0)
menu_entries_append_enum(info->list, "/", "", menu_entries_append_enum(info->list, "/", "",
MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0);
return 0; return 0;
@ -3492,7 +3492,7 @@ static int menu_displaylist_parse_cores(
if (string_is_empty(info->path)) if (string_is_empty(info->path))
{ {
if (frontend_driver_parse_drive_list(info->list) != 0) if (frontend_driver_parse_drive_list(info->list, true) != 0)
menu_entries_append_enum(info->list, "/", "", menu_entries_append_enum(info->list, "/", "",
MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0);
return 0; return 0;
@ -5914,7 +5914,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
#endif #endif
if (frontend_driver_parse_drive_list(info->list) != 0) if (frontend_driver_parse_drive_list(info->list, true) != 0)
menu_entries_append_enum(info->list, "/", menu_entries_append_enum(info->list, "/",
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR,
@ -6526,7 +6526,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
{ {
if (string_is_empty(info->path)) if (string_is_empty(info->path))
{ {
if (frontend_driver_parse_drive_list(info->list) != 0) if (frontend_driver_parse_drive_list(info->list, true) != 0)
menu_entries_append_enum(info->list, "/", "", menu_entries_append_enum(info->list, "/", "",
MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0);
info->need_refresh = true; info->need_refresh = true;

View File

@ -405,7 +405,8 @@ void menu_entries_append(file_list_t *list, const char *path, const char *label,
menu_cbs_init(list, cbs, path, label, type, idx); menu_cbs_init(list, cbs, path, label, type, idx);
} }
void menu_entries_append_enum(file_list_t *list, const char *path, const char *label, void menu_entries_append_enum(file_list_t *list, const char *path,
const char *label,
enum msg_hash_enums enum_idx, enum msg_hash_enums enum_idx,
unsigned type, size_t directory_ptr, size_t entry_idx) unsigned type, size_t directory_ptr, size_t entry_idx)
{ {