From 18b8f34b2905167a00c24a033305a4481b396b4d Mon Sep 17 00:00:00 2001 From: giantpune Date: Sat, 12 Sep 2009 00:39:49 +0000 Subject: [PATCH] Added more ResumeGui() so the app doesn't freeze when it errors in the disc browser. --- source/prompts/DiscBrowser.cpp | 14 ++++++- source/settings/Settings.cpp | 68 ++-------------------------------- 2 files changed, 16 insertions(+), 66 deletions(-) diff --git a/source/prompts/DiscBrowser.cpp b/source/prompts/DiscBrowser.cpp index 7fd5abd1..1a189163 100644 --- a/source/prompts/DiscBrowser.cpp +++ b/source/prompts/DiscBrowser.cpp @@ -34,27 +34,33 @@ int DiscBrowse(struct discHdr * header) { bool exit = false; int ret, choice; u64 offset; -HaltGui(); + + //Halt Gui seems to fix that pain in the ass code dump. We'll see. + HaltGui(); ret = Disc_SetUSB(header->id); if (ret < 0) { + ResumeGui(); WindowPrompt(tr("ERROR:"), tr("Could not set USB."), tr("OK")); return ret; } ret = Disc_Open(); if (ret < 0) { + ResumeGui(); WindowPrompt(tr("ERROR:"), tr("Could not open disc."), tr("OK")); return ret; } ret = __Disc_FindPartition(&offset); if (ret < 0) { + ResumeGui(); WindowPrompt(tr("ERROR:"), tr("Could not find a WBFS partition."), tr("OK")); return ret; } ret = WDVD_OpenPartition(offset); if (ret < 0) { + ResumeGui(); WindowPrompt(tr("ERROR:"), tr("Could not open WBFS partition"), tr("OK")); return ret; } @@ -62,12 +68,14 @@ HaltGui(); int *buffer = (int*)allocate_memory(0x20); if (buffer == NULL) { + ResumeGui(); WindowPrompt(tr("ERROR:"), tr("Not enough free memory."), tr("OK")); return -1; } ret = WDVD_Read(buffer, 0x20, 0x420); if (ret < 0) { + ResumeGui(); WindowPrompt(tr("ERROR:"), tr("Could not read the disc."), tr("OK")); return ret; } @@ -76,6 +84,7 @@ HaltGui(); FST_ENTRY *fst = (FST_ENTRY *)fstbuffer; if (fst == NULL) { + ResumeGui(); WindowPrompt(tr("ERROR:"), tr("Not enough free memory."), tr("OK")); free(buffer); return -1; @@ -84,12 +93,13 @@ HaltGui(); ret = WDVD_Read(fstbuffer, buffer[2]*4, buffer[1]*4); if (ret < 0) { + ResumeGui(); WindowPrompt(tr("ERROR:"), tr("Could not read the disc."), tr("OK")); free(buffer); free(fstbuffer); return ret; } -ResumeGui(); + ResumeGui(); free(buffer); WDVD_Reset(); diff --git a/source/settings/Settings.cpp b/source/settings/Settings.cpp index 47d06d5a..88015761 100644 --- a/source/settings/Settings.cpp +++ b/source/settings/Settings.cpp @@ -2200,63 +2200,6 @@ int GameSettings(struct discHdr * header) { int res = DiscBrowse(header); if ((res >= 0)&&(res !=696969)) {//if res==696969 they pressed the back button alternatedoloffset = res; - - ///////////////// - //w.Remove(&optionBrowser2); - //w.Remove(&backBtn); - //char entered[43] = ""; - //titleTxt.SetText(tr("ThemePath")); - //strncpy(entered, CFG.theme_path, sizeof(entered)); - //int result = BrowseDevice(entered); - //int result = OnScreenKeyboard(entered, 43,0); - // HaltGui(); - //w.RemoveAll(); - //if ( result == 1 ) { - // int len = (strlen(entered)-1); - // if (entered[len] !='/') - // strncat (entered, "/", 1); - // strncpy(CFG.theme_path, entered, sizeof(CFG.theme_path)); - // WindowPrompt(tr("Themepath Changed"),0,tr("OK")); -// if(!isSdInserted()) { - // if (!isInserted(bootDevice)) { - // WindowPrompt(tr("No SD-Card inserted!"), tr("Insert an SD-Card to save."), tr("OK")); - // } else { - // cfg_save_global(); - // } - // mainWindow->Remove(bgImg); - // CFG_Load(); - // CFG_LoadGlobal(); - // menu = MENU_SETTINGS; -//#ifdef HW_RVL -/* snprintf(imgPath, sizeof(imgPath), "%splayer1_point.png", CFG.theme_path); - pointer[0] = new GuiImageData(imgPath, player1_point_png); - snprintf(imgPath, sizeof(imgPath), "%splayer2_point.png", CFG.theme_path); - pointer[1] = new GuiImageData(imgPath, player2_point_png); - snprintf(imgPath, sizeof(imgPath), "%splayer3_point.png", CFG.theme_path); - pointer[2] = new GuiImageData(imgPath, player3_point_png); - snprintf(imgPath, sizeof(imgPath), "%splayer4_point.png", CFG.theme_path); - pointer[3] = new GuiImageData(imgPath, player4_point_png); -//#endif - if (CFG.widescreen) - snprintf(imgPath, sizeof(imgPath), "%swbackground.png", CFG.theme_path); - else - snprintf(imgPath, sizeof(imgPath), "%sbackground.png", CFG.theme_path); - - background = new GuiImageData(imgPath, CFG.widescreen? wbackground_png : background_png); - - bgImg = new GuiImage(background); - mainWindow->Append(bgImg); - mainWindow->Append(&w); - } - w.Append(&settingsbackground); - w.Append(&titleTxt); - titleTxt.SetText(tr("Custom Paths")); - w.Append(&backBtn); - w.Append(&optionBrowser2);*/ - // ResumeGui(); - - //////////////// - } } } else { @@ -2264,14 +2207,11 @@ int GameSettings(struct discHdr * header) { if ((res >= 0)&&(res !=696969)){ alternatedoloffset = res; - char tmp[170]; - snprintf(tmp,sizeof(tmp),"%s %s - %i",tr("It seems that you have some information that will be helpfull to us. Please pass this information along to the DEV team.") ,filename,alternatedoloffset); - WindowPrompt(0,tmp,tr("Ok")); + char tmp[170]; + snprintf(tmp,sizeof(tmp),"%s %s - %i",tr("It seems that you have some information that will be helpfull to us. Please pass this information along to the DEV team.") ,filename,alternatedoloffset); + WindowPrompt(0,tmp,tr("Ok")); + } } - } - - - } break; case 10: