refactor out rarch_console_get_rom_ext - use this for PC too

since RMenu depends on it and it will run on that as well
This commit is contained in:
twinaphex 2013-01-09 07:07:46 +01:00
parent 8fdc5197f5
commit 9c67f3a6ac
7 changed files with 25 additions and 35 deletions

View File

@ -159,7 +159,7 @@ HRESULT CRetroArchFileBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled
GetChildById(L"XuiBtnGameDir", &m_dir_game);
GetChildById(L"XuiBtnCacheDir", &m_dir_cache);
filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), default_paths.filebrowser_startup_dir);
filebrowser_set_root_and_ext(browser, g_extern.system.valid_extensions, default_paths.filebrowser_startup_dir);
uint64_t action = (1ULL << RMENU_DEVICE_NAV_B);
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle);
@ -184,20 +184,21 @@ HRESULT CRetroArchFileBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle
{
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(browser), str_buffer);
uint64_t action = (1ULL << RMENU_DEVICE_NAV_B);
filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), path);
filebrowser_set_root_and_ext(browser, g_extern.system.valid_extensions, path);
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle);
}
}
else if (hObjPressed == m_dir_game)
{
filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), g_extern.console.main_wrap.paths.default_rom_startup_dir);
filebrowser_set_root_and_ext(browser, g_extern.system.valid_extensions,
g_extern.console.main_wrap.paths.default_rom_startup_dir);
uint64_t action = (1ULL << RMENU_DEVICE_NAV_B);
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle);
}
#ifdef HAVE_HDD_CACHE_PARTITION
else if (hObjPressed == m_dir_cache)
{
filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), "cache:");
filebrowser_set_root_and_ext(browser, g_extern.system.valid_extensions, "cache:");
uint64_t action = (1ULL << RMENU_DEVICE_NAV_B);
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle);
@ -1111,7 +1112,7 @@ void menu_init (void)
return;
}
browser = (filebrowser_t*)filebrowser_init(default_paths.filebrowser_startup_dir, rarch_console_get_rom_ext());
browser = (filebrowser_t*)filebrowser_init(default_paths.filebrowser_startup_dir, g_extern.system.valid_extensions);
tmp_browser = (filebrowser_t*)filebrowser_init(default_paths.filebrowser_startup_dir, "");
g_extern.console.rmenu.mode = MODE_MENU;

View File

@ -178,10 +178,9 @@ int rarch_extract_zipfile(const char *zip_path, char *first_file, size_t first_f
// is the extension of the file supported by the libretro core?
struct string_list *ext_list = NULL;
const char *file_ext = path_get_extension(write_filename);
const char *ext = rarch_console_get_rom_ext();
if (ext)
ext_list = string_split(ext, "|");
if (g_extern.system.valid_extensions)
ext_list = string_split(g_extern.system.valid_extensions, "|");
if (ext_list && string_list_find_elem(ext_list, file_ext))
found_first_file = true;
@ -249,18 +248,3 @@ void rarch_console_load_game_wrap(const char *path, unsigned extract_zip_mode, u
rarch_settings_msg(S_MSG_LOADING_ROM, delay);
}
}
const char *rarch_console_get_rom_ext(void)
{
const char *retval = NULL;
struct retro_system_info info;
retro_get_system_info(&info);
if (info.valid_extensions)
retval = info.valid_extensions;
else
retval = "ZIP|zip";
return retval;
}

View File

@ -19,10 +19,6 @@
void rarch_console_load_game_wrap(const char *path, unsigned extract_zip_mode, unsigned delay);
// Get rom extensions for current library.
// Returns NULL if library doesn't have any preferences in particular.
const char *rarch_console_get_rom_ext(void);
#ifdef HAVE_ZLIB
#define WRITEBUFFERSIZE (1024 * 512)

View File

@ -1785,7 +1785,7 @@ int select_rom(void *data, void *state)
device_ptr->ctx_driver->rmenu_set_default_pos(&default_pos);
browser_update(filebrowser, input, rarch_console_get_rom_ext());
browser_update(filebrowser, input, g_extern.system.valid_extensions);
if (input & (1ULL << RMENU_DEVICE_NAV_SELECT))
menu_stack_push(GENERAL_VIDEO_MENU);
@ -1806,8 +1806,8 @@ int select_rom(void *data, void *state)
const char * drive_map = device_ptr->ctx_driver->drive_mapping_previous();
if(drive_map != NULL)
{
filebrowser_set_root_and_ext(filebrowser, rarch_console_get_rom_ext(), drive_map);
browser_update(filebrowser, 1ULL << RMENU_DEVICE_NAV_B, rarch_console_get_rom_ext());
filebrowser_set_root_and_ext(filebrowser, g_extern.system.valid_extensions, drive_map);
browser_update(filebrowser, 1ULL << RMENU_DEVICE_NAV_B, g_extern.system.valid_extensions);
}
}
else if (input & (1ULL << RMENU_DEVICE_NAV_R1))
@ -1815,8 +1815,8 @@ int select_rom(void *data, void *state)
const char * drive_map = device_ptr->ctx_driver->drive_mapping_next();
if(drive_map != NULL)
{
filebrowser_set_root_and_ext(filebrowser, rarch_console_get_rom_ext(), drive_map);
browser_update(filebrowser, 1ULL << RMENU_DEVICE_NAV_B, rarch_console_get_rom_ext());
filebrowser_set_root_and_ext(filebrowser, g_extern.system.valid_extensions, drive_map);
browser_update(filebrowser, 1ULL << RMENU_DEVICE_NAV_B, g_extern.system.valid_extensions);
}
}
@ -2365,11 +2365,11 @@ void init_filebrowser(void *data)
{
(void)data;
browser = filebrowser_init(default_paths.filebrowser_startup_dir, rarch_console_get_rom_ext());
browser = filebrowser_init(default_paths.filebrowser_startup_dir, g_extern.system.valid_extensions);
tmpBrowser = filebrowser_init(default_paths.filesystem_root_dir, "");
menu_stack_push(FILE_BROWSER_MENU);
filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), default_paths.filebrowser_startup_dir);
filebrowser_set_root_and_ext(browser, g_extern.system.valid_extensions, default_paths.filebrowser_startup_dir);
filebrowser_set_root(tmpBrowser, default_paths.filesystem_root_dir);
}

View File

@ -326,7 +326,7 @@ static bool folder_cb(const char *directory, rgui_file_enum_cb_t file_cb,
if (core_chooser)
strlcpy(exts, "dol|DOL", sizeof(exts));
else
strlcpy(exts, rarch_console_get_rom_ext(), sizeof(exts));
strlcpy(exts, g_extern.system.valid_extensions, sizeof(exts));
struct string_list *ext_list = string_split(exts, "|");
char _dir[PATH_MAX];

View File

@ -321,6 +321,7 @@ struct global
bool force_nonblock;
const char *input_desc_btn[MAX_PLAYERS][RARCH_FIRST_CUSTOM_BIND];
char valid_extensions[PATH_MAX];
retro_keyboard_event_t key_event;
} system;

View File

@ -2586,6 +2586,12 @@ void rarch_main_clear_state(void)
init_state();
}
#ifdef HAVE_ZLIB
#define DEFAULT_EXT "ZIP|zip"
#else
#define DEFAULT_EXT ""
#endif
void rarch_init_system_info(void)
{
struct retro_system_info *info = &g_extern.system.info;
@ -2598,6 +2604,8 @@ void rarch_init_system_info(void)
snprintf(g_extern.title_buf, sizeof(g_extern.title_buf), "RetroArch : %s %s",
info->library_name, info->library_version);
snprintf(g_extern.system.valid_extensions, sizeof(g_extern.system.valid_extensions),
info->valid_extensions ? info->valid_extensions : DEFAULT_EXT);
}
static void init_system_av_info(void)