mirror of
https://github.com/Oibaf66/fbzx-wii.git
synced 2024-11-28 11:04:15 +01:00
Added file managing (paste, copy and delete)
This commit is contained in:
parent
ca2919097f
commit
7271ef5102
@ -75,12 +75,16 @@ char path_mdrs[MAX_PATH_LENGTH];
|
|||||||
char path_scr1[MAX_PATH_LENGTH];
|
char path_scr1[MAX_PATH_LENGTH];
|
||||||
char path_scr2[MAX_PATH_LENGTH];
|
char path_scr2[MAX_PATH_LENGTH];
|
||||||
char path_confs[MAX_PATH_LENGTH];
|
char path_confs[MAX_PATH_LENGTH];
|
||||||
|
char path_paste[MAX_PATH_LENGTH];
|
||||||
|
char path_copy[MAX_PATH_LENGTH];
|
||||||
|
char path_delete[MAX_PATH_LENGTH];
|
||||||
char path_tmp[MAX_PATH_LENGTH];
|
char path_tmp[MAX_PATH_LENGTH];
|
||||||
char load_path_snaps[MAX_PATH_LENGTH];
|
char load_path_snaps[MAX_PATH_LENGTH];
|
||||||
char load_path_taps[MAX_PATH_LENGTH];
|
char load_path_taps[MAX_PATH_LENGTH];
|
||||||
char load_path_scr1[MAX_PATH_LENGTH];
|
char load_path_scr1[MAX_PATH_LENGTH];
|
||||||
char load_path_poke[MAX_PATH_LENGTH];
|
char load_path_poke[MAX_PATH_LENGTH];
|
||||||
char rom_cartridge[MAX_PATH_LENGTH];
|
char rom_cartridge[MAX_PATH_LENGTH];
|
||||||
|
char pasted_file[MAX_PATH_LENGTH];
|
||||||
|
|
||||||
unsigned int colors[80];
|
unsigned int colors[80];
|
||||||
unsigned int jump_frames,curr_frames, turbo_n;
|
unsigned int jump_frames,curr_frames, turbo_n;
|
||||||
@ -1507,6 +1511,9 @@ int main(int argc,char *argv[])
|
|||||||
strcpy(path_scr2,path_snaps);
|
strcpy(path_scr2,path_snaps);
|
||||||
strcpy(path_confs,path_snaps);
|
strcpy(path_confs,path_snaps);
|
||||||
strcpy(load_path_poke,path_snaps);
|
strcpy(load_path_poke,path_snaps);
|
||||||
|
strcpy(path_paste,path_snaps);
|
||||||
|
strcpy(path_delete,path_snaps);
|
||||||
|
strcpy(path_copy,path_snaps);
|
||||||
strcpy(path_tmp,path_snaps);
|
strcpy(path_tmp,path_snaps);
|
||||||
strcat(path_snaps,"snapshots");
|
strcat(path_snaps,"snapshots");
|
||||||
strcat(path_taps,"tapes");
|
strcat(path_taps,"tapes");
|
||||||
@ -1520,6 +1527,8 @@ int main(int argc,char *argv[])
|
|||||||
strcpy(load_path_taps,path_taps);
|
strcpy(load_path_taps,path_taps);
|
||||||
strcpy(load_path_scr1,path_scr1);
|
strcpy(load_path_scr1,path_scr1);
|
||||||
|
|
||||||
|
pasted_file[0]=0;
|
||||||
|
|
||||||
//Remove and make tmp dir
|
//Remove and make tmp dir
|
||||||
|
|
||||||
if (!chdir(path_tmp)) {chdir("/"); remove_dir(path_tmp);} //remove the tmp directory if it exists
|
if (!chdir(path_tmp)) {chdir("/"); remove_dir(path_tmp);} //remove the tmp directory if it exists
|
||||||
@ -1554,6 +1563,7 @@ int main(int argc,char *argv[])
|
|||||||
strcpy(load_path_taps,"sd:/");
|
strcpy(load_path_taps,"sd:/");
|
||||||
strcpy(load_path_scr1,"sd:/");
|
strcpy(load_path_scr1,"sd:/");
|
||||||
strcpy(load_path_poke,"sd:/");
|
strcpy(load_path_poke,"sd:/");
|
||||||
|
strcpy(path_paste,"sd:/");
|
||||||
}
|
}
|
||||||
else ordenador.port =0;
|
else ordenador.port =0;
|
||||||
break;
|
break;
|
||||||
@ -1564,6 +1574,7 @@ int main(int argc,char *argv[])
|
|||||||
strcpy(load_path_taps,"usb:/");
|
strcpy(load_path_taps,"usb:/");
|
||||||
strcpy(load_path_scr1,"usb:/");
|
strcpy(load_path_scr1,"usb:/");
|
||||||
strcpy(load_path_poke,"usb:/");
|
strcpy(load_path_poke,"usb:/");
|
||||||
|
strcpy(path_paste,"usb:/");
|
||||||
}
|
}
|
||||||
else ordenador.port =0;
|
else ordenador.port =0;
|
||||||
break;
|
break;
|
||||||
@ -1574,6 +1585,7 @@ int main(int argc,char *argv[])
|
|||||||
strcpy(load_path_taps,"smb:/");
|
strcpy(load_path_taps,"smb:/");
|
||||||
strcpy(load_path_scr1,"smb:/");
|
strcpy(load_path_scr1,"smb:/");
|
||||||
strcpy(load_path_poke,"smb:/");
|
strcpy(load_path_poke,"smb:/");
|
||||||
|
strcpy(path_paste,"smb:/");
|
||||||
}
|
}
|
||||||
else ordenador.port =0;
|
else ordenador.port =0;
|
||||||
break;
|
break;
|
||||||
@ -1584,6 +1596,7 @@ int main(int argc,char *argv[])
|
|||||||
strcpy(load_path_taps,"ftp:/");
|
strcpy(load_path_taps,"ftp:/");
|
||||||
strcpy(load_path_scr1,"ftp:/");
|
strcpy(load_path_scr1,"ftp:/");
|
||||||
strcpy(load_path_poke,"ftp:/");
|
strcpy(load_path_poke,"ftp:/");
|
||||||
|
strcpy(path_paste,"ftp:/");
|
||||||
}
|
}
|
||||||
else ordenador.port =0;
|
else ordenador.port =0;
|
||||||
break;
|
break;
|
||||||
|
@ -39,12 +39,16 @@ extern char path_mdrs[MAX_PATH_LENGTH];
|
|||||||
extern char path_scr1[MAX_PATH_LENGTH];
|
extern char path_scr1[MAX_PATH_LENGTH];
|
||||||
extern char path_scr2[MAX_PATH_LENGTH];
|
extern char path_scr2[MAX_PATH_LENGTH];
|
||||||
extern char path_confs[MAX_PATH_LENGTH];
|
extern char path_confs[MAX_PATH_LENGTH];
|
||||||
|
extern char path_paste[MAX_PATH_LENGTH];
|
||||||
|
extern char path_copy[MAX_PATH_LENGTH];
|
||||||
|
extern char path_delete[MAX_PATH_LENGTH];
|
||||||
extern char path_tmp[MAX_PATH_LENGTH];
|
extern char path_tmp[MAX_PATH_LENGTH];
|
||||||
extern char load_path_snaps[MAX_PATH_LENGTH];
|
extern char load_path_snaps[MAX_PATH_LENGTH];
|
||||||
extern char load_path_taps[MAX_PATH_LENGTH];
|
extern char load_path_taps[MAX_PATH_LENGTH];
|
||||||
extern char load_path_scr1[MAX_PATH_LENGTH];
|
extern char load_path_scr1[MAX_PATH_LENGTH];
|
||||||
extern char load_path_poke[MAX_PATH_LENGTH];
|
extern char load_path_poke[MAX_PATH_LENGTH];
|
||||||
extern char rom_cartridge[MAX_PATH_LENGTH];
|
extern char rom_cartridge[MAX_PATH_LENGTH];
|
||||||
|
extern char pasted_file[MAX_PATH_LENGTH];
|
||||||
|
|
||||||
extern unsigned int colors[80];
|
extern unsigned int colors[80];
|
||||||
extern unsigned int jump_frames,curr_frames, turbo_n;
|
extern unsigned int jump_frames,curr_frames, turbo_n;
|
||||||
|
143
src/gui_sdl.c
143
src/gui_sdl.c
@ -179,16 +179,18 @@ static const char *tools_messages[] = {
|
|||||||
/*01*/ "^|Save1|Save2|Load|Delete",
|
/*01*/ "^|Save1|Save2|Load|Delete",
|
||||||
/*02*/ "Port",
|
/*02*/ "Port",
|
||||||
/*03*/ "^|default|sd|usb|smb|ftp",
|
/*03*/ "^|default|sd|usb|smb|ftp",
|
||||||
/*04*/ "Auto virtual keyboard",
|
/*04*/ "Manage files",
|
||||||
/*05*/ "^|on|off",
|
/*05*/ "^|Paste|Copy|Delete",
|
||||||
/*06*/ "Keyboard rumble",
|
/*06*/ "Auto virtual keyboard",
|
||||||
/*07*/ "^|on|off",
|
/*07*/ "^|on|off",
|
||||||
/*08*/ " ",
|
/*08*/ "Keyboard rumble",
|
||||||
/*09*/ "Load poke file",
|
/*09*/ "^|on|off",
|
||||||
/*10*/ " ",
|
/*10*/ " ",
|
||||||
/*11*/ "Insert poke",
|
/*11*/ "Load poke file",
|
||||||
/*12*/ " ",
|
/*12*/ " ",
|
||||||
/*13*/ "Help",
|
/*13*/ "Insert poke",
|
||||||
|
/*14*/ " ",
|
||||||
|
/*15*/ "Help",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1318,6 +1320,7 @@ static void set_port(int which)
|
|||||||
strcpy(load_path_taps,load_path_snaps);
|
strcpy(load_path_taps,load_path_snaps);
|
||||||
strcpy(load_path_scr1,load_path_snaps);
|
strcpy(load_path_scr1,load_path_snaps);
|
||||||
strcpy(load_path_poke,load_path_snaps);
|
strcpy(load_path_poke,load_path_snaps);
|
||||||
|
strcpy(path_paste,load_path_snaps);
|
||||||
strcat(load_path_snaps,"snapshots");
|
strcat(load_path_snaps,"snapshots");
|
||||||
strcat(load_path_taps,"tapes");
|
strcat(load_path_taps,"tapes");
|
||||||
strcat(load_path_scr1,"scr");
|
strcat(load_path_scr1,"scr");
|
||||||
@ -1331,6 +1334,7 @@ static void set_port(int which)
|
|||||||
strcpy(load_path_taps,"sd:/");
|
strcpy(load_path_taps,"sd:/");
|
||||||
strcpy(load_path_scr1,"sd:/");
|
strcpy(load_path_scr1,"sd:/");
|
||||||
strcpy(load_path_poke,"sd:/");
|
strcpy(load_path_poke,"sd:/");
|
||||||
|
strcpy(path_paste,"sd:/");
|
||||||
ordenador.port = which;}
|
ordenador.port = which;}
|
||||||
else
|
else
|
||||||
msgInfo("SD is not mounted",3000,NULL);
|
msgInfo("SD is not mounted",3000,NULL);
|
||||||
@ -1341,6 +1345,7 @@ static void set_port(int which)
|
|||||||
strcpy(load_path_taps,"usb:/");
|
strcpy(load_path_taps,"usb:/");
|
||||||
strcpy(load_path_scr1,"usb:/");
|
strcpy(load_path_scr1,"usb:/");
|
||||||
strcpy(load_path_poke,"usb:/");
|
strcpy(load_path_poke,"usb:/");
|
||||||
|
strcpy(path_paste,"usb:/");
|
||||||
ordenador.port = which;}
|
ordenador.port = which;}
|
||||||
else
|
else
|
||||||
msgInfo("USB is not mounted",3000,NULL);
|
msgInfo("USB is not mounted",3000,NULL);
|
||||||
@ -1358,6 +1363,7 @@ static void set_port(int which)
|
|||||||
strcpy(load_path_taps,"smb:/");
|
strcpy(load_path_taps,"smb:/");
|
||||||
strcpy(load_path_scr1,"smb:/");
|
strcpy(load_path_scr1,"smb:/");
|
||||||
strcpy(load_path_poke,"smb:/");
|
strcpy(load_path_poke,"smb:/");
|
||||||
|
strcpy(path_paste,"smb:/");
|
||||||
ordenador.port = which;}
|
ordenador.port = which;}
|
||||||
else
|
else
|
||||||
msgInfo("SMB is not mounted",3000,NULL);
|
msgInfo("SMB is not mounted",3000,NULL);
|
||||||
@ -1376,6 +1382,7 @@ static void set_port(int which)
|
|||||||
strcpy(load_path_taps,"ftp:/");
|
strcpy(load_path_taps,"ftp:/");
|
||||||
strcpy(load_path_scr1,"ftp:/");
|
strcpy(load_path_scr1,"ftp:/");
|
||||||
strcpy(load_path_poke,"ftp:/");
|
strcpy(load_path_poke,"ftp:/");
|
||||||
|
strcpy(path_paste,"ftp:/");
|
||||||
ordenador.port = which;}
|
ordenador.port = which;}
|
||||||
else
|
else
|
||||||
msgInfo("FTP is not mounted",3000,NULL);
|
msgInfo("FTP is not mounted",3000,NULL);
|
||||||
@ -1696,10 +1703,113 @@ switch (which)
|
|||||||
return retorno;
|
return retorno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void delete_file()
|
||||||
|
{
|
||||||
|
const char *filename = menu_select_file(path_delete, NULL, 0);
|
||||||
|
|
||||||
|
if (filename==NULL) // Aborted
|
||||||
|
return;
|
||||||
|
|
||||||
|
if ((strstr(filename,"None") == NULL)&&(msgYesNo("Delete the file?", 0, -1, -1))) unlink(filename);
|
||||||
|
|
||||||
|
free((void *)filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void paste_file()
|
||||||
|
{
|
||||||
|
const char *filename = menu_select_file(path_paste, NULL, 0);
|
||||||
|
|
||||||
|
if (filename==NULL) // Aborted
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (strstr(filename,"None") == NULL)
|
||||||
|
{
|
||||||
|
strcpy(pasted_file, filename);
|
||||||
|
msgInfo("File pasted", 2000,NULL) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
free((void *)filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void copy_file()
|
||||||
|
{
|
||||||
|
char copy_full_name[MAX_PATH_LENGTH];
|
||||||
|
char paste_name[81];
|
||||||
|
FILE *from_file, *to_file;
|
||||||
|
int c;
|
||||||
|
|
||||||
|
if (pasted_file[0]==0) {msgInfo("No file pasted", 2000,NULL) ;return;}
|
||||||
|
|
||||||
|
msgInfo("Select \"None\" in the dir", 2000,NULL) ;
|
||||||
|
|
||||||
|
const char *filename = menu_select_file(path_copy, pasted_file, 0);
|
||||||
|
|
||||||
|
if (filename==NULL) // Aborted
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (strstr(filename,"None") == NULL) //We have to select None
|
||||||
|
goto exit;
|
||||||
|
|
||||||
|
|
||||||
|
if (strrchr(filename, '/')) *(strrchr(filename, '/')+1) = 0; //remove the filename
|
||||||
|
|
||||||
|
strncpy(copy_full_name, filename, MAX_PATH_LENGTH);
|
||||||
|
|
||||||
|
if (strrchr(pasted_file, '/'))
|
||||||
|
strncpy(paste_name, strrchr(pasted_file, '/') + 1, 80);
|
||||||
|
else
|
||||||
|
strncpy(paste_name, pasted_file, 80);
|
||||||
|
|
||||||
|
strcat(copy_full_name,paste_name);
|
||||||
|
|
||||||
|
from_file=fopen(pasted_file, "rb");
|
||||||
|
|
||||||
|
if (!from_file) goto exit;
|
||||||
|
|
||||||
|
to_file=fopen(copy_full_name, "wb");
|
||||||
|
|
||||||
|
if (!to_file) {fclose (from_file);goto exit;}
|
||||||
|
|
||||||
|
while ((c = getc(from_file)) != EOF)
|
||||||
|
putc(c, to_file);
|
||||||
|
|
||||||
|
fclose (from_file);
|
||||||
|
fclose (to_file);
|
||||||
|
pasted_file[0]=0;
|
||||||
|
msgInfo("File copied", 2000,NULL) ;
|
||||||
|
|
||||||
|
exit:
|
||||||
|
|
||||||
|
free((void *)filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int manage_file(int which)
|
||||||
|
{
|
||||||
|
int retorno = 0; //Stay in menu as default
|
||||||
|
|
||||||
|
switch (which)
|
||||||
|
{
|
||||||
|
case 0: // paste
|
||||||
|
paste_file();
|
||||||
|
break;
|
||||||
|
case 1: // save
|
||||||
|
copy_file();
|
||||||
|
break;
|
||||||
|
case 2: // delete
|
||||||
|
delete_file();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return retorno;
|
||||||
|
}
|
||||||
|
|
||||||
static int tools()
|
static int tools()
|
||||||
{
|
{
|
||||||
int opt , retorno;
|
int opt , retorno;
|
||||||
int submenus[4], old_port;
|
int submenus[5], old_port;
|
||||||
|
|
||||||
memset(submenus, 0, sizeof(submenus));
|
memset(submenus, 0, sizeof(submenus));
|
||||||
|
|
||||||
@ -1707,8 +1817,8 @@ static int tools()
|
|||||||
retorno=-1; //Exit from menu as default
|
retorno=-1; //Exit from menu as default
|
||||||
|
|
||||||
submenus[1] = ordenador.port;
|
submenus[1] = ordenador.port;
|
||||||
submenus[2] = !ordenador.vk_auto;
|
submenus[3] = !ordenador.vk_auto;
|
||||||
submenus[3] = !ordenador.vk_rumble;
|
submenus[4] = !ordenador.vk_rumble;
|
||||||
|
|
||||||
old_port=ordenador.port;
|
old_port=ordenador.port;
|
||||||
|
|
||||||
@ -1718,21 +1828,24 @@ static int tools()
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (old_port!= submenus[1]) set_port(submenus[1]);
|
if (old_port!= submenus[1]) set_port(submenus[1]);
|
||||||
ordenador.vk_auto = !submenus[2];
|
ordenador.vk_auto = !submenus[3];
|
||||||
ordenador.vk_rumble = !submenus[3];
|
ordenador.vk_rumble = !submenus[4];
|
||||||
|
|
||||||
switch(opt)
|
switch(opt)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
retorno = manage_scr(submenus[0]);
|
retorno = manage_scr(submenus[0]);
|
||||||
break;
|
break;
|
||||||
case 9: // Load poke file
|
case 4:
|
||||||
|
retorno = manage_file(submenus[2]);
|
||||||
|
break;
|
||||||
|
case 11: // Load poke file
|
||||||
retorno = load_poke_file();
|
retorno = load_poke_file();
|
||||||
break;
|
break;
|
||||||
case 11: // Insert poke
|
case 13: // Insert poke
|
||||||
retorno = do_poke_sdl();
|
retorno = do_poke_sdl();
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 15:
|
||||||
help();
|
help();
|
||||||
retorno = -1;
|
retorno = -1;
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user