void ProgramDataMenu::run() { int8_t index; do { index = runSimple(); if(index < 0) return; switch(index) { case 5: createName(); break; case 6: editName(); break; default: ProgramData undo(p_); if(!runEdit(index)) { p_ = undo; } else { Buzzer::soundSelect(); p_.check(); } break; } } while(true); }
bool SettingsMenu::run() { int8_t index; do { index = runSimple(); if(index < 0) return false; switch(index) { case sizeOfArray(SettingsStaticMenu) - 2: //reset p_.setDefault(); buzzer.soundSelect(); break; case sizeOfArray(SettingsStaticMenu) - 1: //save return true; default: Settings undo(p_); if(!runEdit(index)) p_ = undo; p_.check(); p_.apply(); break; } } while(true); }
void SettingsMenu::run() { int8_t index; do { index = runSimple(); if(index < 0) return; switch(index) { case sizeOfArray(SettingsStaticMenu) - 1: //reset p_.setDefault(); Buzzer::soundSelect(); break; default: Settings undo(p_); if(!runEdit(index)) { p_ = undo; } else { Buzzer::soundSelect(); p_.check(); } p_.apply(); break; } } while(true); }
int Runtime::runShell(const char *startupBas, int fontScale, int debugPort) { logEntered(); os_graphics = 1; os_color_depth = 16; opt_interactive = true; opt_usevmt = 0; opt_file_permitted = 1; opt_graphics = true; opt_pref_bpp = 0; opt_nosave = true; _output->setTextColor(DEFAULT_FOREGROUND, DEFAULT_BACKGROUND); _output->setFontSize(getStartupFontSize(_window)); _initialFontSize = _output->getFontSize(); if (fontScale != 100) { _fontScale = fontScale; int fontSize = (_initialFontSize * _fontScale / 100); _output->setFontSize(fontSize); } SDL_Init(SDL_INIT_AUDIO); SDL_AudioSpec desiredSpec; desiredSpec.freq = FREQUENCY; desiredSpec.format = AUDIO_S16SYS; desiredSpec.channels = 1; desiredSpec.samples = 2048; desiredSpec.callback = audio_callback; SDL_AudioSpec obtainedSpec; SDL_OpenAudio(&desiredSpec, &obtainedSpec); net_init(); if (debugPort > 0) { appLog("Debug active on port %d\n", debugPort); g_lock = SDL_CreateMutex(); g_cond = SDL_CreateCond(); opt_trace_on = 1; g_debugBreak = SDL_TRUE; SDL_Thread *thread = SDL_CreateThread(debugThread, "DBg", (void *)(intptr_t)debugPort); SDL_DetachThread(thread); } if (startupBas != NULL) { String bas = startupBas; if (opt_ide == IDE_INTERNAL) { runEdit(bas.c_str()); } else { runOnce(bas.c_str()); } while (_state == kRestartState) { _state = kActiveState; if (_loadPath.length() != 0) { bas = _loadPath; } runOnce(bas.c_str()); } } else { runMain(MAIN_BAS); } if (debugPort > 0) { SDL_DestroyCond(g_cond); SDL_DestroyMutex(g_lock); } debugStop(); net_close(); SDL_CloseAudio(); _state = kDoneState; logLeaving(); return _fontScale; }