void Func_LoadFromDVD() { // Deinit any existing romFile state if(romFile_deinit) romFile_deinit( romFile_topLevel ); // Change all the romFile pointers romFile_topLevel = &topLevel_DVD; romFile_readDir = fileBrowser_DVD_readDir; romFile_readFile = fileBrowser_DVD_readFile; romFile_seekFile = fileBrowser_DVD_seekFile; romFile_init = fileBrowser_DVD_init; romFile_deinit = fileBrowser_DVD_deinit; // Make sure the romFile system is ready before we browse the filesystem romFile_init( romFile_topLevel ); pMenuContext->setActiveFrame(MenuContext::FRAME_FILEBROWSER); fileBrowserFrame_OpenDirectory(romFile_topLevel); }
void Func_LoadFromUSB() { #ifdef WII // Deinit any existing romFile state if(romFile_deinit) romFile_deinit( romFile_topLevel ); // Change all the romFile pointers romFile_topLevel = &topLevel_libfat_USB; romFile_readDir = fileBrowser_libfat_readDir; romFile_readFile = fileBrowser_libfatROM_readFile; romFile_seekFile = fileBrowser_libfat_seekFile; romFile_init = fileBrowser_libfat_init; romFile_deinit = fileBrowser_libfatROM_deinit; // Make sure the romFile system is ready before we browse the filesystem romFile_deinit( romFile_topLevel ); romFile_init( romFile_topLevel ); pMenuContext->setActiveFrame(MenuContext::FRAME_FILEBROWSER); fileBrowserFrame_OpenDirectory(romFile_topLevel); #endif }
void Func_LoadFromAuto() { if (!strlen(&romPath[0])) return; strcpy(topLevel_libfat_Auto.name, &romPath[0]); char *sep = strrchr(topLevel_libfat_Auto.name, '/'); if (sep) *sep = '\0'; // Change all the romFile pointers romFile_topLevel = &topLevel_libfat_Auto; romFile_readDir = fileBrowser_libfat_readDir; romFile_readFile = fileBrowser_libfatROM_readFile; romFile_seekFile = fileBrowser_libfat_seekFile; romFile_init = fileBrowser_libfat_init; romFile_deinit = fileBrowser_libfatROM_deinit; // Make sure the romFile system is ready before we browse the filesystem romFile_init( romFile_topLevel ); fileBrowserFrame_OpenDirectory(romFile_topLevel); fileBrowserFrame_AutoLoadFile(romPath); }
void fileBrowserFrame_LoadFile(int i) { if(dir_entries[i].attr & FILE_BROWSER_ATTR_DIR){ // Here we are 'recursing' into a subdirectory // We have to do a little dance here to avoid a dangling pointer fileBrowser_file* dir = (fileBrowser_file*)malloc( sizeof(fileBrowser_file) ); memcpy(dir, dir_entries+i, sizeof(fileBrowser_file)); fileBrowserFrame_OpenDirectory(dir); free(dir); menu::Focus::getInstance().clearPrimaryFocus(); } else { // We must select this file int ret = loadROM( &dir_entries[i] ); if(!ret){ // If the read succeeded. strcpy(feedback_string, "Loaded "); strncat(feedback_string, filenameFromAbsPath(dir_entries[i].name), 36-7); char RomInfo[512] = ""; char buffer [50]; char buffer2 [50]; strcat(RomInfo,feedback_string); sprintf(buffer,"\n\nRom name: %s\n",ROM_SETTINGS.goodname); strcat(RomInfo,buffer); sprintf(buffer,"Rom size: %d Mb\n",rom_length/1024/1024); strcat(RomInfo,buffer); if(ROM_HEADER->Manufacturer_ID == 'N') sprintf(buffer,"Manufacturer: Nintendo\n"); else sprintf(buffer,"Manufacturer: %x\n", (unsigned int)(ROM_HEADER->Manufacturer_ID)); strcat(RomInfo,buffer); countrycodestring(ROM_HEADER->Country_code&0xFF, buffer2); sprintf(buffer,"Country: %s\n",buffer2); strcat(RomInfo,buffer); switch (autoSaveLoaded) { case NATIVESAVEDEVICE_NONE: break; case NATIVESAVEDEVICE_SD: strcat(RomInfo,"\nFound & loaded save from SD card\n"); break; case NATIVESAVEDEVICE_USB: strcat(RomInfo,"\nFound & loaded save from USB device\n"); break; case NATIVESAVEDEVICE_CARDA: strcat(RomInfo,"\nFound & loaded save from memcard in slot A\n"); break; case NATIVESAVEDEVICE_CARDB: strcat(RomInfo,"\nFound & loaded save from memcard in slot B\n"); break; } autoSaveLoaded = NATIVESAVEDEVICE_NONE; menu::MessageBox::getInstance().setMessage(RomInfo); } else // If not. { switch(ret) { case ROM_CACHE_ERROR_READ: strcpy(feedback_string,"A read error occured"); break; case ROM_CACHE_INVALID_ROM: strcpy(feedback_string,"Invalid ROM type"); break; default: strcpy(feedback_string,"An error has occured"); break; } menu::MessageBox::getInstance().setMessage(feedback_string); } /* //disable all buttons for (int i = 0; i < NUM_FRAME_BUTTONS; i++) FRAME_BUTTONS[i].button->setActive(false); //set first entry to report 'success'/'error' and return to main menu FRAME_BUTTONS[2].buttonString = feedback_string; FRAME_BUTTONS[2].button->setClicked(Func_ReturnFromFileBrowserFrame); FRAME_BUTTONS[2].button->setActive(true); FRAME_BUTTONS[2].button->setNextFocus(menu::Focus::DIRECTION_UP, NULL); FRAME_BUTTONS[2].button->setNextFocus(menu::Focus::DIRECTION_DOWN, NULL); for (int i = 1; i<NUM_FILE_SLOTS; i++) FRAME_BUTTONS[i+2].buttonString = FRAME_STRINGS[2]; pMenuContext->getFrame(MenuContext::FRAME_FILEBROWSER)->setDefaultFocus(FRAME_BUTTONS[2].button); menu::Focus::getInstance().clearPrimaryFocus();*/ pMenuContext->setActiveFrame(MenuContext::FRAME_MAIN); if(hasLoadedROM) Func_SetPlayGame(); } }