diff --git a/Makefile.common b/Makefile.common
index 60f99ef8bb..24a5f9d7d9 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -833,7 +833,6 @@ endif
ifeq ($(HAVE_MENU_COMMON), 1)
OBJ += menu/menu_setting.o \
- menu/widgets/menu_filebrowser.o \
menu/widgets/menu_dialog.o \
menu/cbs/menu_cbs_ok.o \
menu/cbs/menu_cbs_cancel.o \
diff --git a/griffin/griffin.c b/griffin/griffin.c
index 1ad799e485..9f2ae011d6 100644
--- a/griffin/griffin.c
+++ b/griffin/griffin.c
@@ -1296,7 +1296,6 @@ MENU
#include "../menu/menu_networking.c"
#endif
-#include "../menu/widgets/menu_filebrowser.c"
#include "../menu/widgets/menu_dialog.c"
#include "../menu/cbs/menu_cbs_ok.c"
#include "../menu/cbs/menu_cbs_cancel.c"
diff --git a/menu/cbs/menu_cbs_cancel.c b/menu/cbs/menu_cbs_cancel.c
index 9eadff7ac2..356564dfdc 100644
--- a/menu/cbs/menu_cbs_cancel.c
+++ b/menu/cbs/menu_cbs_cancel.c
@@ -22,8 +22,6 @@
#include "../../msg_hash.h"
#include "../../managers/cheat_manager.h"
-#include "../widgets/menu_filebrowser.h"
-
#ifndef BIND_ACTION_CANCEL
#define BIND_ACTION_CANCEL(cbs, name) (cbs)->action_cancel = (name)
#endif
diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c
index 722c5500ac..cddc62486c 100644
--- a/menu/cbs/menu_cbs_ok.c
+++ b/menu/cbs/menu_cbs_ok.c
@@ -48,7 +48,6 @@
#include "../menu_shader.h"
#endif
#include "../widgets/menu_dialog.h"
-#include "../widgets/menu_filebrowser.h"
#include "../widgets/menu_input_bind_dialog.h"
#include "../menu_input.h"
#include "../menu_networking.h"
diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c
index 9d4a94fb44..72bbca489a 100644
--- a/menu/drivers/materialui.c
+++ b/menu/drivers/materialui.c
@@ -45,7 +45,6 @@
#include "../../gfx/gfx_thumbnail.h"
#include "../../input/input_osk.h"
-#include "../widgets/menu_filebrowser.h"
#include "../../core_info.h"
#include "../../configuration.h"
diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c
index 44b68b0d0b..621d7cab3b 100644
--- a/menu/menu_displaylist.c
+++ b/menu/menu_displaylist.c
@@ -75,7 +75,6 @@
#endif
#include "menu_networking.h"
#include "widgets/menu_dialog.h"
-#include "widgets/menu_filebrowser.h"
#include "../configuration.h"
#include "../file_path_special.h"
@@ -133,6 +132,302 @@ struct menu_displaylist_state
};
static struct menu_displaylist_state menu_displist_st;
+/* TODO/FIXME - static public global variables */
+static enum filebrowser_enums filebrowser_types = FILEBROWSER_NONE;
+
+enum filebrowser_enums filebrowser_get_type(void)
+{
+ return filebrowser_types;
+}
+
+void filebrowser_clear_type(void)
+{
+ filebrowser_types = FILEBROWSER_NONE;
+}
+
+void filebrowser_set_type(enum filebrowser_enums type)
+{
+ filebrowser_types = type;
+}
+
+static void filebrowser_parse(
+ menu_displaylist_info_t *info,
+ unsigned type_data,
+ bool show_hidden_files,
+ bool builtin_mediaplayer_enable,
+ bool builtin_imageviewer_enable,
+ bool filter_ext
+ )
+{
+ size_t i, list_size;
+ const struct retro_subsystem_info *subsystem;
+ struct string_list *str_list = NULL;
+ unsigned items_found = 0;
+ unsigned files_count = 0;
+ unsigned dirs_count = 0;
+ enum menu_displaylist_ctl_state type = (enum menu_displaylist_ctl_state)
+ type_data;
+ const char *path = info ? info->path : NULL;
+ bool path_is_compressed = !string_is_empty(path)
+ ? path_is_compressed_file(path) : false;
+ rarch_system_info_t *system = runloop_get_system_info();
+
+ /* Core fully loaded, use the subsystem data */
+ if (system->subsystem.data)
+ subsystem = system->subsystem.data + content_get_subsystem();
+ /* Core not loaded completely, use the data we peeked on load core */
+ else
+ subsystem = subsystem_data + content_get_subsystem();
+
+ if (info)
+ {
+ if (info->type_default == FILE_TYPE_SHADER_PRESET ||
+ info->type_default == FILE_TYPE_SHADER)
+ filter_ext = true;
+
+ if (string_is_equal(info->label,
+ msg_hash_to_str(MENU_ENUM_LABEL_SCAN_FILE)))
+ filter_ext = false;
+ }
+
+ if (info && path_is_compressed)
+ {
+ if (filebrowser_types != FILEBROWSER_SELECT_FILE_SUBSYSTEM)
+ str_list = file_archive_get_file_list(path, info->exts);
+ else if (subsystem && subsystem_current_count > 0)
+ str_list = file_archive_get_file_list(path,
+ subsystem->roms[
+ content_get_subsystem_rom_id()].valid_extensions);
+ }
+ else if (!string_is_empty(path))
+ {
+ if (filebrowser_types == FILEBROWSER_SELECT_FILE_SUBSYSTEM)
+ {
+ if (subsystem && subsystem_current_count > 0 && content_get_subsystem_rom_id() < subsystem->num_roms)
+ str_list = dir_list_new(path,
+ (filter_ext && info) ? subsystem->roms[content_get_subsystem_rom_id()].valid_extensions : NULL,
+ true, show_hidden_files, true, false);
+ }
+ else if (info && ((info->type_default == FILE_TYPE_MANUAL_SCAN_DAT) || (info->type_default == FILE_TYPE_SIDELOAD_CORE)))
+ str_list = dir_list_new(path,
+ info->exts, true, show_hidden_files, false, false);
+ else
+ str_list = dir_list_new(path,
+ (filter_ext && info) ? info->exts : NULL,
+ true, show_hidden_files, true, false);
+ }
+
+ switch (filebrowser_types)
+ {
+ case FILEBROWSER_SCAN_DIR:
+#ifdef HAVE_LIBRETRODB
+ if (info)
+ menu_entries_prepend(info->list,
+ msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_THIS_DIRECTORY),
+ msg_hash_to_str(MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY),
+ MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY,
+ FILE_TYPE_SCAN_DIRECTORY, 0 ,0);
+#endif
+ break;
+ case FILEBROWSER_MANUAL_SCAN_DIR:
+ if (info)
+ menu_entries_prepend(info->list,
+ msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_THIS_DIRECTORY),
+ msg_hash_to_str(MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY),
+ MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY,
+ FILE_TYPE_MANUAL_SCAN_DIRECTORY, 0 ,0);
+ break;
+ case FILEBROWSER_SELECT_DIR:
+ if (info)
+ menu_entries_prepend(info->list,
+ msg_hash_to_str(MENU_ENUM_LABEL_VALUE_USE_THIS_DIRECTORY),
+ msg_hash_to_str(MENU_ENUM_LABEL_USE_THIS_DIRECTORY),
+ MENU_ENUM_LABEL_USE_THIS_DIRECTORY,
+ FILE_TYPE_USE_DIRECTORY, 0 ,0);
+ break;
+ default:
+ break;
+ }
+
+ if (!str_list)
+ {
+ const char *str = path_is_compressed
+ ? msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UNABLE_TO_READ_COMPRESSED_FILE)
+ : msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DIRECTORY_NOT_FOUND);
+
+ if (info)
+ menu_entries_append_enum(info->list, str, "",
+ MENU_ENUM_LABEL_VALUE_DIRECTORY_NOT_FOUND, 0, 0, 0);
+ goto end;
+ }
+
+ dir_list_sort(str_list, true);
+
+ list_size = str_list->size;
+
+ if (list_size == 0)
+ {
+ string_list_free(str_list);
+ str_list = NULL;
+ }
+ else
+ {
+ for (i = 0; i < list_size; i++)
+ {
+ char label[64];
+ bool is_dir = false;
+ enum msg_hash_enums enum_idx = MSG_UNKNOWN;
+ enum msg_file_type file_type = FILE_TYPE_NONE;
+ const char *path = str_list->elems[i].data;
+
+ label[0] = '\0';
+
+ switch (str_list->elems[i].attr.i)
+ {
+ case RARCH_DIRECTORY:
+ file_type = FILE_TYPE_DIRECTORY;
+ break;
+ case RARCH_COMPRESSED_ARCHIVE:
+ file_type = FILE_TYPE_CARCHIVE;
+ break;
+ case RARCH_COMPRESSED_FILE_IN_ARCHIVE:
+ file_type = FILE_TYPE_IN_CARCHIVE;
+ break;
+ case RARCH_PLAIN_FILE:
+ default:
+ if (filebrowser_types == FILEBROWSER_SELECT_FONT)
+ file_type = FILE_TYPE_FONT;
+ else
+ file_type = (enum msg_file_type)info->type_default;
+ switch (type)
+ {
+ /* in case of deferred_core_list we have to interpret
+ * every archive as an archive to disallow instant loading
+ */
+ case DISPLAYLIST_CORES_DETECTED:
+ if (path_is_compressed_file(path))
+ file_type = FILE_TYPE_CARCHIVE;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+
+ is_dir = (file_type == FILE_TYPE_DIRECTORY);
+
+ if (!is_dir)
+ if (
+ (filebrowser_types == FILEBROWSER_SELECT_DIR) ||
+ (filebrowser_types == FILEBROWSER_SCAN_DIR) ||
+ (filebrowser_types == FILEBROWSER_MANUAL_SCAN_DIR)
+ )
+ continue;
+
+ /* Need to preserve slash first time. */
+
+ if (!string_is_empty(path) && !path_is_compressed)
+ path = path_basename(path);
+
+ if (is_dir)
+ {
+ if (filebrowser_types == FILEBROWSER_SELECT_COLLECTION)
+ file_type = FILE_TYPE_DIRECTORY;
+ }
+ else
+ {
+ enum rarch_content_type path_type = path_is_media_type(path);
+
+ if (filebrowser_types == FILEBROWSER_SELECT_COLLECTION)
+ file_type = FILE_TYPE_PLAYLIST_COLLECTION;
+
+ if (path_type == RARCH_CONTENT_MUSIC)
+ file_type = FILE_TYPE_MUSIC;
+ else if (
+ builtin_mediaplayer_enable ||
+ builtin_imageviewer_enable)
+ {
+ switch (path_type)
+ {
+ case RARCH_CONTENT_MOVIE:
+#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
+ if (builtin_mediaplayer_enable)
+ file_type = FILE_TYPE_MOVIE;
+#endif
+ break;
+ case RARCH_CONTENT_IMAGE:
+#ifdef HAVE_IMAGEVIEWER
+ if (builtin_imageviewer_enable
+ && type != DISPLAYLIST_IMAGES)
+ file_type = FILE_TYPE_IMAGEVIEWER;
+ else
+ file_type = FILE_TYPE_IMAGE;
+#endif
+ if (filebrowser_types == FILEBROWSER_SELECT_IMAGE)
+ file_type = FILE_TYPE_IMAGE;
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ switch (file_type)
+ {
+ case FILE_TYPE_PLAIN:
+ files_count++;
+ break;
+ case FILE_TYPE_MOVIE:
+ enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_MOVIE_OPEN;
+ files_count++;
+ break;
+ case FILE_TYPE_MUSIC:
+ enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_MUSIC_OPEN;
+ files_count++;
+ break;
+ case FILE_TYPE_IMAGE:
+ enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_IMAGE;
+ files_count++;
+ break;
+ case FILE_TYPE_IMAGEVIEWER:
+ enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER;
+ files_count++;
+ break;
+ case FILE_TYPE_DIRECTORY:
+ enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
+ dirs_count++;
+ break;
+ default:
+ break;
+ }
+
+ items_found++;
+ menu_entries_append_enum(info->list, path, label,
+ enum_idx,
+ file_type, 0, 0);
+ }
+ }
+
+ if (str_list && str_list->size > 0)
+ string_list_free(str_list);
+
+ if (items_found == 0)
+ {
+ menu_entries_append_enum(info->list,
+ msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ITEMS),
+ msg_hash_to_str(MENU_ENUM_LABEL_NO_ITEMS),
+ MENU_ENUM_LABEL_NO_ITEMS,
+ MENU_SETTING_NO_ITEM, 0, 0);
+ }
+
+end:
+ if (info && !path_is_compressed)
+ menu_entries_prepend(info->list,
+ msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PARENT_DIRECTORY),
+ path,
+ MENU_ENUM_LABEL_PARENT_DIRECTORY,
+ FILE_TYPE_PARENT_DIRECTORY, 0, 0);
+}
static int menu_displaylist_parse_core_info(menu_displaylist_info_t *info)
{
diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h
index 936a88cd10..5fd00c2c39 100644
--- a/menu/menu_displaylist.h
+++ b/menu/menu_displaylist.h
@@ -242,6 +242,20 @@ enum menu_displaylist_ctl_state
DISPLAYLIST_PENDING_CLEAR
};
+enum filebrowser_enums
+{
+ FILEBROWSER_NONE = 0,
+ FILEBROWSER_SELECT_DIR,
+ FILEBROWSER_SCAN_DIR,
+ FILEBROWSER_SCAN_FILE,
+ FILEBROWSER_MANUAL_SCAN_DIR,
+ FILEBROWSER_SELECT_FILE,
+ FILEBROWSER_SELECT_FILE_SUBSYSTEM,
+ FILEBROWSER_SELECT_IMAGE,
+ FILEBROWSER_SELECT_FONT,
+ FILEBROWSER_SELECT_COLLECTION
+};
+
typedef struct menu_displaylist_info
{
enum msg_hash_enums enum_idx;
@@ -314,6 +328,12 @@ unsigned menu_displaylist_netplay_refresh_rooms(file_list_t *list);
bool menu_displaylist_has_subsystems(void);
+enum filebrowser_enums filebrowser_get_type(void);
+
+void filebrowser_clear_type(void);
+
+void filebrowser_set_type(enum filebrowser_enums type);
+
RETRO_END_DECLS
#endif
diff --git a/menu/widgets/menu_filebrowser.c b/menu/widgets/menu_filebrowser.c
deleted file mode 100644
index 30a2360613..0000000000
--- a/menu/widgets/menu_filebrowser.c
+++ /dev/null
@@ -1,336 +0,0 @@
-/* RetroArch - A frontend for libretro.
- * Copyright (C) 2011-2017 - Daniel De Matteis
- * Copyright (C) 2017-2019 - Andrés Suárez
- *
- * RetroArch is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Found-
- * ation, either version 3 of the License, or (at your option) any later version.
- *
- * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with RetroArch.
- * If not, see .
- */
-
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-#include
-
-#ifdef HAVE_CONFIG_H
-#include "../../config.h"
-#endif
-
-#include "menu_filebrowser.h"
-
-#include "../menu_driver.h"
-#include "../menu_displaylist.h"
-
-#include "../../paths.h"
-
-#include "../../content.h"
-#include "../../dynamic.h"
-
-/* TODO/FIXME - static public global variables */
-static enum filebrowser_enums filebrowser_types = FILEBROWSER_NONE;
-
-enum filebrowser_enums filebrowser_get_type(void)
-{
- return filebrowser_types;
-}
-
-void filebrowser_clear_type(void)
-{
- filebrowser_types = FILEBROWSER_NONE;
-}
-
-void filebrowser_set_type(enum filebrowser_enums type)
-{
- filebrowser_types = type;
-}
-
-void filebrowser_parse(
- menu_displaylist_info_t *info,
- unsigned type_data,
- bool show_hidden_files,
- bool builtin_mediaplayer_enable,
- bool builtin_imageviewer_enable,
- bool filter_ext
- )
-{
- size_t i, list_size;
- const struct retro_subsystem_info *subsystem;
- struct string_list *str_list = NULL;
- unsigned items_found = 0;
- unsigned files_count = 0;
- unsigned dirs_count = 0;
- enum menu_displaylist_ctl_state type = (enum menu_displaylist_ctl_state)
- type_data;
- const char *path = info ? info->path : NULL;
- bool path_is_compressed = !string_is_empty(path)
- ? path_is_compressed_file(path) : false;
- rarch_system_info_t *system = runloop_get_system_info();
-
- /* Core fully loaded, use the subsystem data */
- if (system->subsystem.data)
- subsystem = system->subsystem.data + content_get_subsystem();
- /* Core not loaded completely, use the data we peeked on load core */
- else
- subsystem = subsystem_data + content_get_subsystem();
-
- if (info)
- {
- if (info->type_default == FILE_TYPE_SHADER_PRESET ||
- info->type_default == FILE_TYPE_SHADER)
- filter_ext = true;
-
- if (string_is_equal(info->label,
- msg_hash_to_str(MENU_ENUM_LABEL_SCAN_FILE)))
- filter_ext = false;
- }
-
- if (info && path_is_compressed)
- {
- if (filebrowser_types != FILEBROWSER_SELECT_FILE_SUBSYSTEM)
- str_list = file_archive_get_file_list(path, info->exts);
- else if (subsystem && subsystem_current_count > 0)
- str_list = file_archive_get_file_list(path,
- subsystem->roms[
- content_get_subsystem_rom_id()].valid_extensions);
- }
- else if (!string_is_empty(path))
- {
- if (filebrowser_types == FILEBROWSER_SELECT_FILE_SUBSYSTEM)
- {
- if (subsystem && subsystem_current_count > 0 && content_get_subsystem_rom_id() < subsystem->num_roms)
- str_list = dir_list_new(path,
- (filter_ext && info) ? subsystem->roms[content_get_subsystem_rom_id()].valid_extensions : NULL,
- true, show_hidden_files, true, false);
- }
- else if (info && ((info->type_default == FILE_TYPE_MANUAL_SCAN_DAT) || (info->type_default == FILE_TYPE_SIDELOAD_CORE)))
- str_list = dir_list_new(path,
- info->exts, true, show_hidden_files, false, false);
- else
- str_list = dir_list_new(path,
- (filter_ext && info) ? info->exts : NULL,
- true, show_hidden_files, true, false);
- }
-
- switch (filebrowser_types)
- {
- case FILEBROWSER_SCAN_DIR:
-#ifdef HAVE_LIBRETRODB
- if (info)
- menu_entries_prepend(info->list,
- msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_THIS_DIRECTORY),
- msg_hash_to_str(MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY),
- MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY,
- FILE_TYPE_SCAN_DIRECTORY, 0 ,0);
-#endif
- break;
- case FILEBROWSER_MANUAL_SCAN_DIR:
- if (info)
- menu_entries_prepend(info->list,
- msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_THIS_DIRECTORY),
- msg_hash_to_str(MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY),
- MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY,
- FILE_TYPE_MANUAL_SCAN_DIRECTORY, 0 ,0);
- break;
- case FILEBROWSER_SELECT_DIR:
- if (info)
- menu_entries_prepend(info->list,
- msg_hash_to_str(MENU_ENUM_LABEL_VALUE_USE_THIS_DIRECTORY),
- msg_hash_to_str(MENU_ENUM_LABEL_USE_THIS_DIRECTORY),
- MENU_ENUM_LABEL_USE_THIS_DIRECTORY,
- FILE_TYPE_USE_DIRECTORY, 0 ,0);
- break;
- default:
- break;
- }
-
- if (!str_list)
- {
- const char *str = path_is_compressed
- ? msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UNABLE_TO_READ_COMPRESSED_FILE)
- : msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DIRECTORY_NOT_FOUND);
-
- if (info)
- menu_entries_append_enum(info->list, str, "",
- MENU_ENUM_LABEL_VALUE_DIRECTORY_NOT_FOUND, 0, 0, 0);
- goto end;
- }
-
- dir_list_sort(str_list, true);
-
- list_size = str_list->size;
-
- if (list_size == 0)
- {
- string_list_free(str_list);
- str_list = NULL;
- }
- else
- {
- for (i = 0; i < list_size; i++)
- {
- char label[64];
- bool is_dir = false;
- enum msg_hash_enums enum_idx = MSG_UNKNOWN;
- enum msg_file_type file_type = FILE_TYPE_NONE;
- const char *path = str_list->elems[i].data;
-
- label[0] = '\0';
-
- switch (str_list->elems[i].attr.i)
- {
- case RARCH_DIRECTORY:
- file_type = FILE_TYPE_DIRECTORY;
- break;
- case RARCH_COMPRESSED_ARCHIVE:
- file_type = FILE_TYPE_CARCHIVE;
- break;
- case RARCH_COMPRESSED_FILE_IN_ARCHIVE:
- file_type = FILE_TYPE_IN_CARCHIVE;
- break;
- case RARCH_PLAIN_FILE:
- default:
- if (filebrowser_types == FILEBROWSER_SELECT_FONT)
- file_type = FILE_TYPE_FONT;
- else
- file_type = (enum msg_file_type)info->type_default;
- switch (type)
- {
- /* in case of deferred_core_list we have to interpret
- * every archive as an archive to disallow instant loading
- */
- case DISPLAYLIST_CORES_DETECTED:
- if (path_is_compressed_file(path))
- file_type = FILE_TYPE_CARCHIVE;
- break;
- default:
- break;
- }
- break;
- }
-
- is_dir = (file_type == FILE_TYPE_DIRECTORY);
-
- if (!is_dir)
- if (
- (filebrowser_types == FILEBROWSER_SELECT_DIR) ||
- (filebrowser_types == FILEBROWSER_SCAN_DIR) ||
- (filebrowser_types == FILEBROWSER_MANUAL_SCAN_DIR)
- )
- continue;
-
- /* Need to preserve slash first time. */
-
- if (!string_is_empty(path) && !path_is_compressed)
- path = path_basename(path);
-
- if (is_dir)
- {
- if (filebrowser_types == FILEBROWSER_SELECT_COLLECTION)
- file_type = FILE_TYPE_DIRECTORY;
- }
- else
- {
- enum rarch_content_type path_type = path_is_media_type(path);
-
- if (filebrowser_types == FILEBROWSER_SELECT_COLLECTION)
- file_type = FILE_TYPE_PLAYLIST_COLLECTION;
-
- if (path_type == RARCH_CONTENT_MUSIC)
- file_type = FILE_TYPE_MUSIC;
- else if (
- builtin_mediaplayer_enable ||
- builtin_imageviewer_enable)
- {
- switch (path_type)
- {
- case RARCH_CONTENT_MOVIE:
-#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
- if (builtin_mediaplayer_enable)
- file_type = FILE_TYPE_MOVIE;
-#endif
- break;
- case RARCH_CONTENT_IMAGE:
-#ifdef HAVE_IMAGEVIEWER
- if (builtin_imageviewer_enable
- && type != DISPLAYLIST_IMAGES)
- file_type = FILE_TYPE_IMAGEVIEWER;
- else
- file_type = FILE_TYPE_IMAGE;
-#endif
- if (filebrowser_types == FILEBROWSER_SELECT_IMAGE)
- file_type = FILE_TYPE_IMAGE;
- break;
- default:
- break;
- }
- }
- }
-
- switch (file_type)
- {
- case FILE_TYPE_PLAIN:
- files_count++;
- break;
- case FILE_TYPE_MOVIE:
- enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_MOVIE_OPEN;
- files_count++;
- break;
- case FILE_TYPE_MUSIC:
- enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_MUSIC_OPEN;
- files_count++;
- break;
- case FILE_TYPE_IMAGE:
- enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_IMAGE;
- files_count++;
- break;
- case FILE_TYPE_IMAGEVIEWER:
- enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER;
- files_count++;
- break;
- case FILE_TYPE_DIRECTORY:
- enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
- dirs_count++;
- break;
- default:
- break;
- }
-
- items_found++;
- menu_entries_append_enum(info->list, path, label,
- enum_idx,
- file_type, 0, 0);
- }
- }
-
- if (str_list && str_list->size > 0)
- string_list_free(str_list);
-
- if (items_found == 0)
- {
- menu_entries_append_enum(info->list,
- msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ITEMS),
- msg_hash_to_str(MENU_ENUM_LABEL_NO_ITEMS),
- MENU_ENUM_LABEL_NO_ITEMS,
- MENU_SETTING_NO_ITEM, 0, 0);
- }
-
-end:
- if (info && !path_is_compressed)
- menu_entries_prepend(info->list,
- msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PARENT_DIRECTORY),
- path,
- MENU_ENUM_LABEL_PARENT_DIRECTORY,
- FILE_TYPE_PARENT_DIRECTORY, 0, 0);
-}
diff --git a/menu/widgets/menu_filebrowser.h b/menu/widgets/menu_filebrowser.h
deleted file mode 100644
index 87831c4257..0000000000
--- a/menu/widgets/menu_filebrowser.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* RetroArch - A frontend for libretro.
- * Copyright (C) 2010-2014 - Hans-Kristian Arntzen
- * Copyright (C) 2011-2017 - Daniel De Matteis
- *
- * RetroArch is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Found-
- * ation, either version 3 of the License, or (at your option) any later version.
- *
- * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with RetroArch.
- * If not, see .
- */
-
-#ifndef _MENU_FILEBROWSER_H
-#define _MENU_FILEBROWSER_H
-
-#include
-#include
-
-#include
-#include
-
-#include "../menu_displaylist.h"
-
-RETRO_BEGIN_DECLS
-
-enum filebrowser_enums
-{
- FILEBROWSER_NONE = 0,
- FILEBROWSER_SELECT_DIR,
- FILEBROWSER_SCAN_DIR,
- FILEBROWSER_SCAN_FILE,
- FILEBROWSER_MANUAL_SCAN_DIR,
- FILEBROWSER_SELECT_FILE,
- FILEBROWSER_SELECT_FILE_SUBSYSTEM,
- FILEBROWSER_SELECT_IMAGE,
- FILEBROWSER_SELECT_FONT,
- FILEBROWSER_SELECT_COLLECTION
-};
-
-enum filebrowser_enums filebrowser_get_type(void);
-
-void filebrowser_clear_type(void);
-
-void filebrowser_set_type(enum filebrowser_enums type);
-
-void filebrowser_parse(
- menu_displaylist_info_t *info,
- unsigned type_data,
- bool show_hidden_files,
- bool builtin_mediaplayer_enable,
- bool builtin_imageviewer_enable,
- bool filter_ext
- );
-
-RETRO_END_DECLS
-
-#endif