mirror of
https://github.com/libretro/RetroArch
synced 2025-04-16 08:43:10 +00:00
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:
parent
8fdc5197f5
commit
9c67f3a6ac
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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];
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user