mirror of
https://github.com/libretro/RetroArch.git
synced 2025-02-01 22:42:22 +00:00
(PS3) Implement file_is_directory on PS3
This commit is contained in:
parent
b4e3786aa1
commit
734afe2058
12
file.c
12
file.c
@ -32,6 +32,10 @@
|
||||
#include "sha256.h"
|
||||
#endif
|
||||
|
||||
#ifdef __CELLOS_LV2__
|
||||
#include <cell/cell_fs.h>
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(_XBOX)
|
||||
#include <io.h>
|
||||
#include <fcntl.h>
|
||||
@ -939,7 +943,13 @@ bool path_is_directory(const char *path)
|
||||
#ifdef _WIN32
|
||||
DWORD ret = GetFileAttributes(path);
|
||||
return (ret & FILE_ATTRIBUTE_DIRECTORY) && (ret != INVALID_FILE_ATTRIBUTES);
|
||||
#elif defined(__CELLOS_LV2__) || defined(XENON)
|
||||
#elif defined(__CELLOS_LV2__)
|
||||
CellFsStat buf;
|
||||
if (cellFsStat(path, &buf) < 0)
|
||||
return false;
|
||||
|
||||
return buf.st_mode & CELL_FS_S_IFDIR;
|
||||
#elif defined(XENON)
|
||||
// Dummy
|
||||
(void)path;
|
||||
return false;
|
||||
|
@ -171,6 +171,8 @@ struct settings
|
||||
struct console_settings
|
||||
{
|
||||
bool block_config_read;
|
||||
bool default_sram_dir_enable;
|
||||
bool default_savestate_dir_enable;
|
||||
bool ingame_menu_enable;
|
||||
bool return_to_multiman_enable;
|
||||
bool screenshots_enable;
|
||||
|
33
ps3/main.c
33
ps3/main.c
@ -110,15 +110,21 @@ static void set_default_settings(void)
|
||||
g_settings.video.msg_pos_y = 0.90f;
|
||||
|
||||
// g_console
|
||||
g_console.block_config_read = true;
|
||||
g_console.screenshots_enable = false;
|
||||
g_console.throttle_enable = true;
|
||||
g_console.triple_buffering_enable = true;
|
||||
g_console.default_savestate_dir_enable = false;
|
||||
g_console.default_sram_dir_enable = false;
|
||||
g_console.current_resolution_id = CELL_VIDEO_OUT_RESOLUTION_UNDEFINED;
|
||||
strlcpy(g_console.default_rom_startup_dir, "/", sizeof(g_console.default_rom_startup_dir));
|
||||
strlcpy(g_console.default_savestate_dir, usrDirPath, sizeof(g_console.default_savestate_dir));
|
||||
strlcpy(g_console.default_sram_dir, usrDirPath, sizeof(g_console.default_sram_dir));
|
||||
|
||||
// g_extern
|
||||
g_extern.state_slot = 0;
|
||||
g_extern.audio_data.mute = 0;
|
||||
g_extern.verbose = true;
|
||||
}
|
||||
|
||||
static void init_settings(void)
|
||||
@ -562,8 +568,6 @@ int main(int argc, char *argv[])
|
||||
|
||||
ssnes_main_clear_state();
|
||||
|
||||
g_console.block_config_read = true;
|
||||
g_extern.verbose = true;
|
||||
config_set_defaults();
|
||||
|
||||
SSNES_LOG("Registering Callback\n");
|
||||
@ -581,6 +585,7 @@ int main(int argc, char *argv[])
|
||||
#endif
|
||||
|
||||
get_path_settings(g_console.return_to_multiman_enable);
|
||||
|
||||
set_default_settings();
|
||||
init_settings();
|
||||
|
||||
@ -629,12 +634,26 @@ begin_loop:
|
||||
char arg5[MAX_PATH_LENGTH];
|
||||
|
||||
snprintf(arg5, sizeof(arg5), SYS_CONFIG_FILE);
|
||||
char *argv_[] = { arg1, arg2, arg3, arg4, arg5, NULL };
|
||||
|
||||
int argc = sizeof(argv_) / sizeof(argv_[0]) - 1;
|
||||
int init_ret = ssnes_main_init(argc, argv_);
|
||||
g_emulator_initialized = 1;
|
||||
init_ssnes = 0;
|
||||
if(g_console.default_sram_dir_enable)
|
||||
{
|
||||
char arg6[] = "-s";
|
||||
char arg7[MAX_PATH_LENGTH];
|
||||
snprintf(arg7, sizeof(arg7), g_console.default_sram_dir);
|
||||
char *argv_[] = { arg1, arg2, arg3, arg4, arg5, arg6, arg7, NULL };
|
||||
int argc = sizeof(argv_) / sizeof(argv_[0]) - 1;
|
||||
int init_ret = ssnes_main_init(argc, argv_);
|
||||
g_emulator_initialized = 1;
|
||||
init_ssnes = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
char *argv_[] = { arg1, arg2, arg3, arg4, arg5, NULL };
|
||||
int argc = sizeof(argv_) / sizeof(argv_[0]) - 1;
|
||||
int init_ret = ssnes_main_init(argc, argv_);
|
||||
g_emulator_initialized = 1;
|
||||
init_ssnes = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#ifdef MULTIMAN_SUPPORT
|
||||
|
50
ps3/menu.c
50
ps3/menu.c
@ -464,8 +464,10 @@ static void select_directory(uint32_t menu_id)
|
||||
switch(menu_id)
|
||||
{
|
||||
case PATH_SAVESTATES_DIR_CHOICE:
|
||||
strcpy(g_console.default_savestate_dir, path);
|
||||
break;
|
||||
case PATH_SRAM_DIR_CHOICE:
|
||||
strcpy(g_console.default_sram_dir, path);
|
||||
break;
|
||||
case PATH_DEFAULT_ROM_DIR_CHOICE:
|
||||
strcpy(g_console.default_rom_startup_dir, path);
|
||||
@ -483,8 +485,10 @@ static void select_directory(uint32_t menu_id)
|
||||
switch(menu_id)
|
||||
{
|
||||
case PATH_SAVESTATES_DIR_CHOICE:
|
||||
strcpy(g_console.default_savestate_dir, path);
|
||||
break;
|
||||
case PATH_SRAM_DIR_CHOICE:
|
||||
strcpy(g_console.default_sram_dir, path);
|
||||
break;
|
||||
case PATH_DEFAULT_ROM_DIR_CHOICE:
|
||||
strcpy(g_console.default_rom_startup_dir, path);
|
||||
@ -712,13 +716,13 @@ static void set_setting_label(menu * menu_obj, int currentsetting)
|
||||
if(g_settings.rewind_enable)
|
||||
{
|
||||
snprintf(menu_obj->items[currentsetting].setting_text, sizeof(menu_obj->items[currentsetting].setting_text), "ON");
|
||||
menu_obj->items[currentsetting].text_color = GREEN;
|
||||
menu_obj->items[currentsetting].text_color = ORANGE;
|
||||
snprintf(menu_obj->items[currentsetting].comment, sizeof(menu_obj->items[currentsetting].comment), "INFO - [Rewind] feature is set to 'ON'. You can rewind the game in real-time.");
|
||||
}
|
||||
else
|
||||
{
|
||||
snprintf(menu_obj->items[currentsetting].setting_text, sizeof(menu_obj->items[currentsetting].setting_text), "OFF");
|
||||
menu_obj->items[currentsetting].text_color = ORANGE;
|
||||
menu_obj->items[currentsetting].text_color = GREEN;
|
||||
snprintf(menu_obj->items[currentsetting].comment, sizeof(menu_obj->items[currentsetting].comment), "INFO - [Rewind] feature is set to 'OFF'.");
|
||||
}
|
||||
break;
|
||||
@ -757,8 +761,20 @@ static void set_setting_label(menu * menu_obj, int currentsetting)
|
||||
snprintf(menu_obj->items[currentsetting].setting_text, sizeof(menu_obj->items[currentsetting].setting_text), g_console.default_rom_startup_dir);
|
||||
break;
|
||||
case SETTING_PATH_SAVESTATES_DIRECTORY:
|
||||
if(!(strcmp(g_console.default_savestate_dir, usrDirPath)))
|
||||
menu_obj->items[currentsetting].text_color = GREEN;
|
||||
else
|
||||
menu_obj->items[currentsetting].text_color = ORANGE;
|
||||
|
||||
snprintf(menu_obj->items[currentsetting].setting_text, sizeof(menu_obj->items[currentsetting].setting_text), g_console.default_savestate_dir);
|
||||
break;
|
||||
case SETTING_PATH_SRAM_DIRECTORY:
|
||||
if(!(strcmp(g_console.default_sram_dir, usrDirPath)))
|
||||
menu_obj->items[currentsetting].text_color = GREEN;
|
||||
else
|
||||
menu_obj->items[currentsetting].text_color = ORANGE;
|
||||
|
||||
snprintf(menu_obj->items[currentsetting].setting_text, sizeof(menu_obj->items[currentsetting].setting_text), g_console.default_sram_dir);
|
||||
break;
|
||||
case SETTING_PATH_CHEATS:
|
||||
if(!(strcmp(g_settings.cheat_database, usrDirPath)))
|
||||
@ -1169,8 +1185,29 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue)
|
||||
strcpy(g_console.default_rom_startup_dir, "/");
|
||||
break;
|
||||
case SETTING_PATH_SAVESTATES_DIRECTORY:
|
||||
if(CTRL_LEFT(state) || CTRL_LSTICK_LEFT(state) || CTRL_RIGHT(state) || CTRL_LSTICK_RIGHT(state) || CTRL_CROSS(state))
|
||||
{
|
||||
menuStackindex++;
|
||||
menuStack[menuStackindex] = menu_filebrowser;
|
||||
menuStack[menuStackindex].enum_id = PATH_SAVESTATES_DIR_CHOICE;
|
||||
set_initial_dir_tmpbrowser = true;
|
||||
}
|
||||
|
||||
if(CTRL_START(state))
|
||||
strcpy(g_console.default_savestate_dir, usrDirPath);
|
||||
|
||||
break;
|
||||
case SETTING_PATH_SRAM_DIRECTORY:
|
||||
if(CTRL_LEFT(state) || CTRL_LSTICK_LEFT(state) || CTRL_RIGHT(state) || CTRL_LSTICK_RIGHT(state) || CTRL_CROSS(state))
|
||||
{
|
||||
menuStackindex++;
|
||||
menuStack[menuStackindex] = menu_filebrowser;
|
||||
menuStack[menuStackindex].enum_id = PATH_SRAM_DIR_CHOICE;
|
||||
set_initial_dir_tmpbrowser = true;
|
||||
}
|
||||
|
||||
if(CTRL_START(state))
|
||||
strcpy(g_console.default_sram_dir, "");
|
||||
break;
|
||||
case SETTING_PATH_CHEATS:
|
||||
if(CTRL_LEFT(state) || CTRL_LSTICK_LEFT(state) || CTRL_RIGHT(state) || CTRL_LSTICK_RIGHT(state) || CTRL_CROSS(state))
|
||||
@ -1185,6 +1222,15 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue)
|
||||
strcpy(g_settings.cheat_database, usrDirPath);
|
||||
break;
|
||||
case SETTING_PATH_DEFAULT_ALL:
|
||||
if(CTRL_LEFT(state) || CTRL_LSTICK_LEFT(state) || CTRL_RIGHT(state) || CTRL_LSTICK_RIGHT(state) || CTRL_CROSS(state) || CTRL_START(state))
|
||||
{
|
||||
strcpy(g_console.default_rom_startup_dir, "/");
|
||||
strcpy(g_console.default_savestate_dir, usrDirPath);
|
||||
strcpy(g_settings.cheat_database, usrDirPath);
|
||||
strcpy(g_console.default_sram_dir, "");
|
||||
|
||||
menu_reinit_settings();
|
||||
}
|
||||
break;
|
||||
case SETTING_CONTROLS_SCHEME:
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user