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"XuiBtnGameDir", &m_dir_game);
GetChildById(L"XuiBtnCacheDir", &m_dir_cache); 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); uint64_t action = (1ULL << RMENU_DEVICE_NAV_B);
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle); 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); snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(browser), str_buffer);
uint64_t action = (1ULL << RMENU_DEVICE_NAV_B); 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); filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle);
} }
} }
else if (hObjPressed == m_dir_game) 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); uint64_t action = (1ULL << RMENU_DEVICE_NAV_B);
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle); filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle);
} }
#ifdef HAVE_HDD_CACHE_PARTITION #ifdef HAVE_HDD_CACHE_PARTITION
else if (hObjPressed == m_dir_cache) 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); uint64_t action = (1ULL << RMENU_DEVICE_NAV_B);
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle); filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle);
@ -1111,7 +1112,7 @@ void menu_init (void)
return; 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, ""); tmp_browser = (filebrowser_t*)filebrowser_init(default_paths.filebrowser_startup_dir, "");
g_extern.console.rmenu.mode = MODE_MENU; 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? // is the extension of the file supported by the libretro core?
struct string_list *ext_list = NULL; struct string_list *ext_list = NULL;
const char *file_ext = path_get_extension(write_filename); const char *file_ext = path_get_extension(write_filename);
const char *ext = rarch_console_get_rom_ext();
if (ext) if (g_extern.system.valid_extensions)
ext_list = string_split(ext, "|"); ext_list = string_split(g_extern.system.valid_extensions, "|");
if (ext_list && string_list_find_elem(ext_list, file_ext)) if (ext_list && string_list_find_elem(ext_list, file_ext))
found_first_file = true; 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); 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); 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 #ifdef HAVE_ZLIB
#define WRITEBUFFERSIZE (1024 * 512) #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); 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)) if (input & (1ULL << RMENU_DEVICE_NAV_SELECT))
menu_stack_push(GENERAL_VIDEO_MENU); 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(); const char * drive_map = device_ptr->ctx_driver->drive_mapping_previous();
if(drive_map != NULL) if(drive_map != NULL)
{ {
filebrowser_set_root_and_ext(filebrowser, rarch_console_get_rom_ext(), drive_map); filebrowser_set_root_and_ext(filebrowser, g_extern.system.valid_extensions, drive_map);
browser_update(filebrowser, 1ULL << RMENU_DEVICE_NAV_B, rarch_console_get_rom_ext()); browser_update(filebrowser, 1ULL << RMENU_DEVICE_NAV_B, g_extern.system.valid_extensions);
} }
} }
else if (input & (1ULL << RMENU_DEVICE_NAV_R1)) 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(); const char * drive_map = device_ptr->ctx_driver->drive_mapping_next();
if(drive_map != NULL) if(drive_map != NULL)
{ {
filebrowser_set_root_and_ext(filebrowser, rarch_console_get_rom_ext(), drive_map); filebrowser_set_root_and_ext(filebrowser, g_extern.system.valid_extensions, drive_map);
browser_update(filebrowser, 1ULL << RMENU_DEVICE_NAV_B, rarch_console_get_rom_ext()); browser_update(filebrowser, 1ULL << RMENU_DEVICE_NAV_B, g_extern.system.valid_extensions);
} }
} }
@ -2365,11 +2365,11 @@ void init_filebrowser(void *data)
{ {
(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, ""); tmpBrowser = filebrowser_init(default_paths.filesystem_root_dir, "");
menu_stack_push(FILE_BROWSER_MENU); 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); 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) if (core_chooser)
strlcpy(exts, "dol|DOL", sizeof(exts)); strlcpy(exts, "dol|DOL", sizeof(exts));
else 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, "|"); struct string_list *ext_list = string_split(exts, "|");
char _dir[PATH_MAX]; char _dir[PATH_MAX];

View File

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

View File

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