mirror of
https://github.com/libretro/px68k-libretro.git
synced 2024-10-07 06:33:24 +00:00
fix /sdcard problem
This commit is contained in:
parent
e2004c1660
commit
74e75bc9d0
@ -1,6 +1,6 @@
|
||||
ポータブルX68000エミュレータ
|
||||
PX68K ( Portable (x)keropi PRO-68K )
|
||||
2014/06/17
|
||||
2014/06/25
|
||||
|
||||
いろいろなデバイスで X68000 エミュレータが動作したら楽しいな、
|
||||
と思い立ち、この PX68K を作りはじめました。
|
||||
@ -589,7 +589,8 @@ PX68K は以下の成分からできています。
|
||||
2014/04/09 物理パッドの 8 ボタン対応 (Unix/Android)
|
||||
2014/06/17 px68k ディレクトリ /sdcard 以外も対応、外部ストレージ対応
|
||||
(Android)
|
||||
|
||||
2014/06/25 外部ストレージ対応で、ファイルを選択時に異常終了するのを修正
|
||||
(Android)
|
||||
|
||||
9. 免責
|
||||
|
||||
|
@ -1887,8 +1887,8 @@ void WinDraw_DrawMenu(int menu_state, int mkey_pos, int mkey_y, int *mval_y)
|
||||
draw_str(" -- no disk --");
|
||||
} else {
|
||||
// 先頭のカレントディレクトリ名を表示しない
|
||||
if (!strncmp(CUR_DIR_STR, p, CUR_DIR_SLEN)) {
|
||||
draw_str(p + CUR_DIR_SLEN);
|
||||
if (!strncmp(cur_dir_str, p, cur_dir_slen)) {
|
||||
draw_str(p + cur_dir_slen);
|
||||
} else {
|
||||
draw_str(p);
|
||||
}
|
||||
|
29
x11/winui.c
29
x11/winui.c
@ -93,6 +93,9 @@ extern int dmatrace;
|
||||
|
||||
DWORD LastClock[4] = {0, 0, 0, 0};
|
||||
|
||||
char cur_dir_str[MAX_PATH];
|
||||
int cur_dir_slen;
|
||||
|
||||
struct menu_flist mfl;
|
||||
|
||||
/***** menu items *****/
|
||||
@ -212,8 +215,23 @@ WinUI_Init(void)
|
||||
mval_y[M_NW] = Config.NoWaitMode;
|
||||
mval_y[M_JK] = Config.JoyKey;
|
||||
|
||||
#if defined(ANDROID)
|
||||
#define CUR_DIR_STR winx68k_dir
|
||||
#elif TARGET_OS_IPHONE && TARGET_IPHONE_SIMULATOR == 0
|
||||
#define CUR_DIR_STR "/var/mobile/px68k/"
|
||||
#else
|
||||
#define CUR_DIR_STR "./"
|
||||
#endif
|
||||
|
||||
strcpy(cur_dir_str, CUR_DIR_STR);
|
||||
#ifdef ANDROID
|
||||
strcat(cur_dir_str, "/");
|
||||
#endif
|
||||
cur_dir_slen = strlen(cur_dir_str);
|
||||
p6logd("cur_dir_str %s %d\n", cur_dir_str, cur_dir_slen);
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
strcpy(mfl.dir[i], CUR_DIR_STR);
|
||||
strcpy(mfl.dir[i], cur_dir_str);
|
||||
}
|
||||
}
|
||||
|
||||
@ -327,7 +345,7 @@ static void menu_create_flist(int v)
|
||||
char support[] = "D8888DHDMDUP2HDDIMXDFIMG";
|
||||
|
||||
drv = WinUI_get_drv_num(mkey_y);
|
||||
printf("***** drv:%d *****\n", drv);
|
||||
p6logd("***** drv:%d ***** %s \n", drv, mfl.dir[drv]);
|
||||
if (drv < 0) {
|
||||
return;
|
||||
}
|
||||
@ -340,7 +358,7 @@ static void menu_create_flist(int v)
|
||||
} else {
|
||||
Config.HDImage[0][0] = '\0';
|
||||
}
|
||||
strcpy(mfl.dir[drv], CUR_DIR_STR);
|
||||
strcpy(mfl.dir[drv], cur_dir_str);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -358,6 +376,8 @@ static void menu_create_flist(int v)
|
||||
|
||||
dp = opendir(mfl.dir[drv]);
|
||||
|
||||
// xxx check if dp is null...
|
||||
|
||||
// xxx You can get only MFL_MAX files.
|
||||
for (i = 0 ; i < MFL_MAX; i++) {
|
||||
dent = readdir(dp);
|
||||
@ -388,9 +408,10 @@ static void menu_create_flist(int v)
|
||||
i--;
|
||||
continue;
|
||||
}
|
||||
|
||||
// You can't go up over current directory.
|
||||
if (!strcmp(n, "..") &&
|
||||
!strcmp(mfl.dir[drv], CUR_DIR_STR)) {
|
||||
!strcmp(mfl.dir[drv], cur_dir_str)) {
|
||||
i--;
|
||||
continue;
|
||||
}
|
||||
|
10
x11/winui.h
10
x11/winui.h
@ -6,14 +6,8 @@
|
||||
extern BYTE Debug_Text, Debug_Grp, Debug_Sp;
|
||||
extern DWORD LastClock[4];
|
||||
|
||||
#if defined(ANDROID)
|
||||
#define CUR_DIR_STR "/sdcard/px68k/"
|
||||
#elif TARGET_OS_IPHONE && TARGET_IPHONE_SIMULATOR == 0
|
||||
#define CUR_DIR_STR "/var/mobile/px68k/"
|
||||
#else
|
||||
#define CUR_DIR_STR "./"
|
||||
#endif
|
||||
#define CUR_DIR_SLEN strlen(CUR_DIR_STR)
|
||||
extern char cur_dir_str[];
|
||||
extern int cur_dir_slen;
|
||||
|
||||
void WinUI_Init(void);
|
||||
int WinUI_Menu(int first);
|
||||
|
Loading…
Reference in New Issue
Block a user