diff --git a/menu/menu_entries.c b/menu/menu_entries.c index d7b7633452..c52ad26dc3 100644 --- a/menu/menu_entries.c +++ b/menu/menu_entries.c @@ -235,6 +235,86 @@ int entries_push_horizontal_menu_list(menu_handle_t *menu, return 0; } +static void parse_drive_list(file_list_t *list) +{ +#if defined(GEKKO) +#ifdef HW_RVL + menu_list_push(list, + "sd:/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "usb:/", "", MENU_FILE_DIRECTORY, 0); +#endif + menu_list_push(list, + "carda:/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "cardb:/", "", MENU_FILE_DIRECTORY, 0); +#elif defined(_XBOX1) + menu_list_push(list, + "C:", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "D:", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "E:", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "F:", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "G:", "", MENU_FILE_DIRECTORY, 0); +#elif defined(_XBOX360) + menu_list_push(list, + "game:", "", MENU_FILE_DIRECTORY, 0); +#elif defined(_WIN32) + unsigned drives = GetLogicalDrives(); + char drive[] = " :\\"; + for (i = 0; i < 32; i++) + { + drive[0] = 'A' + i; + if (drives & (1 << i)) + menu_list_push(list, + drive, "", MENU_FILE_DIRECTORY, 0); + } +#elif defined(__CELLOS_LV2__) + menu_list_push(list, + "/app_home/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "/dev_hdd0/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "/dev_hdd1/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "/host_root/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "/dev_usb000/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "/dev_usb001/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "/dev_usb002/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "/dev_usb003/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "/dev_usb004/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "/dev_usb005/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "/dev_usb006/", "", MENU_FILE_DIRECTORY, 0); +#elif defined(PSP) + menu_list_push(list, + "ms0:/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "ef0:/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + "host0:/", "", MENU_FILE_DIRECTORY, 0); +#elif defined(IOS) + menu_list_push(list, + "/var/mobile/", "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, + g_defaults.core_dir, "", MENU_FILE_DIRECTORY, 0); + menu_list_push(list, "/", "", + MENU_FILE_DIRECTORY, 0); +#else + menu_list_push(list, "/", "", + MENU_FILE_DIRECTORY, 0); +#endif +} + int menu_entries_parse_list(file_list_t *list, file_list_t *menu_list, const char *dir, const char *label, unsigned type, unsigned default_type_plain, const char *exts) @@ -246,82 +326,7 @@ int menu_entries_parse_list(file_list_t *list, file_list_t *menu_list, if (!*dir) { -#if defined(GEKKO) -#ifdef HW_RVL - menu_list_push(list, - "sd:/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "usb:/", "", MENU_FILE_DIRECTORY, 0); -#endif - menu_list_push(list, - "carda:/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "cardb:/", "", MENU_FILE_DIRECTORY, 0); -#elif defined(_XBOX1) - menu_list_push(list, - "C:", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "D:", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "E:", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "F:", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "G:", "", MENU_FILE_DIRECTORY, 0); -#elif defined(_XBOX360) - menu_list_push(list, - "game:", "", MENU_FILE_DIRECTORY, 0); -#elif defined(_WIN32) - unsigned drives = GetLogicalDrives(); - char drive[] = " :\\"; - for (i = 0; i < 32; i++) - { - drive[0] = 'A' + i; - if (drives & (1 << i)) - menu_list_push(list, - drive, "", MENU_FILE_DIRECTORY, 0); - } -#elif defined(__CELLOS_LV2__) - menu_list_push(list, - "/app_home/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "/dev_hdd0/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "/dev_hdd1/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "/host_root/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "/dev_usb000/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "/dev_usb001/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "/dev_usb002/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "/dev_usb003/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "/dev_usb004/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "/dev_usb005/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "/dev_usb006/", "", MENU_FILE_DIRECTORY, 0); -#elif defined(PSP) - menu_list_push(list, - "ms0:/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "ef0:/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - "host0:/", "", MENU_FILE_DIRECTORY, 0); -#elif defined(IOS) - menu_list_push(list, - "/var/mobile/", "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, - g_defaults.core_dir, "", MENU_FILE_DIRECTORY, 0); - menu_list_push(list, "/", "", - MENU_FILE_DIRECTORY, 0); -#else - menu_list_push(list, "/", "", - MENU_FILE_DIRECTORY, 0); -#endif + parse_drive_list(list); if (driver.menu_ctx && driver.menu_ctx->populate_entries) driver.menu_ctx->populate_entries(driver.menu, dir, label, type); return 0;