Start using dir_list_new_special at more places

This commit is contained in:
twinaphex 2015-05-24 04:39:16 +02:00
parent 37a7749a73
commit 095683b2e0
5 changed files with 23 additions and 11 deletions

View File

@ -590,7 +590,7 @@ static void event_set_savestate_auto_index(void)
fill_pathname_base(state_base, global->savestate_name,
sizeof(state_base));
if (!(dir_list = dir_list_new(state_dir, NULL, false)))
if (!(dir_list = dir_list_new_special(state_dir, DIR_LIST_PLAIN)))
return;
for (i = 0; i < dir_list->size; i++)
@ -1276,7 +1276,7 @@ bool event_command(enum event_command cmd)
event_command(EVENT_CMD_CORE_INFO_DEINIT);
if (*settings->libretro_directory)
global->core_info = core_info_list_new(settings->libretro_directory);
global->core_info = core_info_list_new();
break;
case EVENT_CMD_CORE_DEINIT:
{
@ -1413,7 +1413,7 @@ bool event_command(enum event_command cmd)
if (!*settings->video.shader_dir)
return false;
global->shader_dir.list = dir_list_new_special(DIR_LIST_SHADERS);
global->shader_dir.list = dir_list_new_special(NULL, DIR_LIST_SHADERS);
if (!global->shader_dir.list || global->shader_dir.list->size == 0)
{

View File

@ -20,7 +20,7 @@
#include <file/file_path.h>
#include "file_ext.h"
#include <file/file_extract.h>
#include <file/dir_list.h>
#include "dir_list_special.h"
#include "config.def.h"
#ifdef HAVE_CONFIG_H
@ -100,14 +100,13 @@ static void core_info_list_resolve_all_firmware(
}
}
core_info_list_t *core_info_list_new(const char *modules_path)
core_info_list_t *core_info_list_new(void)
{
size_t i;
core_info_t *core_info = NULL;
core_info_list_t *core_info_list = NULL;
settings_t *settings = config_get_ptr();
struct string_list *contents = (struct string_list*)
dir_list_new(modules_path, EXT_EXECUTABLES, false);
struct string_list *contents = dir_list_new_special(NULL, DIR_LIST_CORES);
if (!contents)
return NULL;
@ -144,7 +143,7 @@ core_info_list_t *core_info_list_new(const char *modules_path)
strlcat(info_path_base, ".info", sizeof(info_path_base));
fill_pathname_join(info_path, (*settings->libretro_info_path) ?
settings->libretro_info_path : modules_path,
settings->libretro_info_path : settings->libretro_directory,
info_path_base, sizeof(info_path));
core_info[i].data = config_file_new(info_path);

View File

@ -71,7 +71,7 @@ typedef struct
char *all_ext;
} core_info_list_t;
core_info_list_t *core_info_list_new(const char *modules_path);
core_info_list_t *core_info_list_new(void);
void core_info_list_free(core_info_list_t *list);
size_t core_info_list_num_info_files(core_info_list_t *list);

View File

@ -15,9 +15,11 @@
*/
#include "dir_list_special.h"
#include "general.h"
#include "file_ext.h"
#include "configuration.h"
struct string_list *dir_list_new_special(enum dir_list_type type)
struct string_list *dir_list_new_special(const char *input_dir, enum dir_list_type type)
{
const char *dir = NULL;
const char *exts = NULL;
@ -25,14 +27,23 @@ struct string_list *dir_list_new_special(enum dir_list_type type)
settings_t *settings = config_get_ptr();
(void)input_dir;
(void)settings;
switch (type)
{
case DIR_LIST_CORES:
dir = settings->libretro_directory;
exts = EXT_EXECUTABLES;
break;
case DIR_LIST_SHADERS:
dir = settings->video.shader_dir;
exts = "cg|cgp|glsl|glslp";
break;
case DIR_LIST_PLAIN:
dir = input_dir;
exts = NULL;
break;
case DIR_LIST_NONE:
default:
return NULL;

View File

@ -27,9 +27,11 @@
enum dir_list_type
{
DIR_LIST_NONE = 0,
DIR_LIST_CORES,
DIR_LIST_PLAIN,
DIR_LIST_SHADERS,
};
struct string_list *dir_list_new_special(enum dir_list_type type);
struct string_list *dir_list_new_special(const char *input_dir, enum dir_list_type type);
#endif