int scanMS(){ char strFound[10] = ""; char *scannedMsg; cpuBoost(); ML_checkFiles(checkFileCallback); int found = ML_scanMS(userSettings->mediaLibraryRoot, fileExt, fileExtCount-1, scanDirCallback, NULL); cpuRestore(); snprintf(strFound, sizeof(strFound), "%i", found); while(!osl_quit && !exitFlagMediaLibrary){ oslStartDrawing(); drawCommonGraphics(); drawButtonBar(MODE_MEDIA_LIBRARY); strcpy(buffer, langGetString("MEDIA_FOUND")); scannedMsg = replace(buffer, "XX", strFound); drawMessageBox(langGetString("SCAN_FINISHED"), scannedMsg); oslEndDrawing(); oslEndFrame(); oslSyncFrame(); oslReadKeys(); if(getConfirmButton()) break; } return 0; }
bool TextMgr::messageBox(const char *textPtr) { drawMessageBox(textPtr); if (_vm->getFlag(VM_FLAG_OUTPUT_MODE)) { // non-blocking window _vm->setFlag(VM_FLAG_OUTPUT_MODE, false); // Signal, that non-blocking text is shown at the moment _vm->nonBlockingText_IsShown(); return true; } // blocking window _vm->_noSaveLoadAllowed = true; _vm->nonBlockingText_Forget(); // timed window uint32 windowTimer = _vm->getVar(VM_VAR_WINDOW_AUTO_CLOSE_TIMER); debugC(3, kDebugLevelText, "blocking window v21=%d", windowTimer); windowTimer = windowTimer * 10; // 1 = 0.5 seconds _messageBoxCancelled = false; _vm->inGameTimerResetPassedCycles(); _vm->cycleInnerLoopActive(CYCLE_INNERLOOP_MESSAGEBOX); do { _vm->processAGIEvents(); _vm->inGameTimerUpdate(); if (windowTimer > 0) { if (_vm->inGameTimerGetPassedCycles() >= windowTimer) { // Timer reached, close automatically _vm->cycleInnerLoopInactive(); } } } while (_vm->cycleInnerLoopIsActive() && !(_vm->shouldQuit() || _vm->_restartGame)); _vm->inGameTimerResetPassedCycles(); _vm->setVar(VM_VAR_WINDOW_AUTO_CLOSE_TIMER, 0); closeWindow(); _vm->_noSaveLoadAllowed = false; if (_messageBoxCancelled) return false; return true; }