minor improvements

This commit is contained in:
dborth 2009-10-04 19:29:47 +00:00
parent 852f7875fa
commit 941047bb18
3 changed files with 135 additions and 127 deletions

View File

@ -502,8 +502,13 @@ bool ParseDirEntries()
continue;
}
if(AddBrowserEntry())
if(!AddBrowserEntry())
{
i=0;
parseHalt = true;
break;
}
strncpy(browserList[browser.numEntries+i].filename, filename, MAXJOLIET);
browserList[browser.numEntries+i].length = filestat.st_size;
browserList[browser.numEntries+i].mtime = filestat.st_mtime;
@ -522,7 +527,6 @@ bool ParseDirEntries()
StripExt(browserList[browser.numEntries+i].displayname, browserList[browser.numEntries+i].filename); // hide file extension
}
}
}
// Sort the file list
if(i >= 0)
@ -658,7 +662,7 @@ LoadSzFile(char * filepath, unsigned char * rbuffer)
HaltDeviceThread();
// halt parsing
parseHalt = true;
HaltParseThread();
file = fopen (filepath, "rb");
if (file > 0)
@ -692,18 +696,23 @@ LoadFile (char * rbuffer, char *filepath, size_t length, bool silent)
if(!FindDevice(filepath, &device))
return 0;
if(device == DEVICE_MC_SLOTA)
return LoadMCFile (rbuffer, CARD_SLOTA, StripDevice(filepath), silent);
else if(device == DEVICE_MC_SLOTB)
return LoadMCFile (rbuffer, CARD_SLOTB, StripDevice(filepath), silent);
// stop checking if devices were removed/inserted
// since we're loading a file
HaltDeviceThread();
// halt parsing
parseHalt = true;
HaltParseThread();
if(device == DEVICE_MC_SLOTA)
{
size = LoadMCFile (rbuffer, CARD_SLOTA, StripDevice(filepath), silent);
}
else if(device == DEVICE_MC_SLOTB)
{
size = LoadMCFile (rbuffer, CARD_SLOTB, StripDevice(filepath), silent);
}
else
{
// open the file
while(!size && retry == 1)
{
@ -775,6 +784,7 @@ LoadFile (char * rbuffer, char *filepath, size_t length, bool silent)
}
}
}
}
// go back to checking if devices were inserted/removed
ResumeDeviceThread();
@ -804,17 +814,25 @@ SaveFile (char * buffer, char *filepath, size_t datasize, bool silent)
if(datasize == 0)
return 0;
// stop checking if devices were removed/inserted
// since we're loading a file
HaltDeviceThread();
// halt parsing
HaltParseThread();
ShowAction("Saving...");
if(device == DEVICE_MC_SLOTA)
return SaveMCFile (buffer, CARD_SLOTA, StripDevice(filepath), datasize, silent);
{
written = SaveMCFile (buffer, CARD_SLOTA, StripDevice(filepath), datasize, silent);
}
else if(device == DEVICE_MC_SLOTB)
return SaveMCFile (buffer, CARD_SLOTB, StripDevice(filepath), datasize, silent);
// stop checking if devices were removed/inserted
// since we're saving a file
HaltDeviceThread();
{
written = SaveMCFile (buffer, CARD_SLOTB, StripDevice(filepath), datasize, silent);
}
else
{
while(!written && retry == 1)
{
if(ChangeInterface(device, silent))
@ -846,6 +864,7 @@ SaveFile (char * buffer, char *filepath, size_t datasize, bool silent)
retry = 0;
}
}
}
// go back to checking if devices were inserted/removed
ResumeDeviceThread();

View File

@ -99,6 +99,8 @@ ParseMCDirectory (int slot)
int CardError;
int entryNum = 0;
HaltDeviceThread();
// Try to mount the card
CardError = MountMC(slot, NOTSILENT);
@ -107,20 +109,11 @@ ParseMCDirectory (int slot)
CardError = CARD_FindFirst (slot, &CardDir, TRUE);
while (CardError != CARD_ERROR_NOFILE)
{
BROWSERENTRY * newBrowserList = (BROWSERENTRY *)realloc(browserList, (entryNum+1) * sizeof(BROWSERENTRY));
if(!newBrowserList) // failed to allocate required memory
if(!AddBrowserEntry())
{
ResetBrowser();
ErrorPrompt("Out of memory: too many files!");
entryNum = -1;
entryNum = 0;
break;
}
else
{
browserList = newBrowserList;
}
memset(&(browserList[entryNum]), 0, sizeof(BROWSERENTRY)); // clear the new entry
strncpy(browserList[entryNum].filename, (char *)CardDir.filename, MAXJOLIET);
StripExt(browserList[entryNum].displayname, browserList[entryNum].filename); // hide file extension
@ -133,6 +126,8 @@ ParseMCDirectory (int slot)
CARD_Unmount(slot);
}
ResumeDeviceThread();
// Sort the file list
qsort(browserList, entryNum, sizeof(BROWSERENTRY), FileSortCallback);

View File

@ -241,24 +241,18 @@ ConnectShare (bool silent)
return false;
#endif
int chkU = (strlen(GCSettings.smbuser) > 0) ? 0:1;
int chkP = (strlen(GCSettings.smbpwd) > 0) ? 0:1;
int chkS = (strlen(GCSettings.smbshare) > 0) ? 0:1;
int chkI = (strlen(GCSettings.smbip) > 0) ? 0:1;
// check that all parameters have been set
if(chkU + chkP + chkS + chkI > 0)
if(chkS + chkI > 0)
{
if(!silent)
{
char msg[50];
char msg2[100];
if(chkU + chkP + chkS + chkI > 1) // more than one thing is wrong
if(chkS + chkI > 1) // more than one thing is wrong
sprintf(msg, "Check settings.xml.");
else if(chkU)
sprintf(msg, "Username is blank.");
else if(chkP)
sprintf(msg, "Password is blank.");
else if(chkS)
sprintf(msg, "Share name is blank.");
else if(chkI)