void screen_allmodes(void) { int current_item = 0; while (1) { osd_clrscr(); menu_draw(&allmodes_menu); current_item = menu_exec(&allmodes_menu, current_item); switch (current_item) { case MENU_ABORT: case MENUITEM_AM_EXIT: return; default: screen_modesettings(current_item); break; } } }
void screen_othersettings(void) { osd_clrscr(); menu_draw(&otherset_menu); menu_exec(&otherset_menu, 0); }
void screen_mainmenu(void) { int current_item = 0; while (1) { modeset_mode = current_videomode; /* (re)draw */ osd_clrscr(); menu_draw(&mainmenu); /* run */ current_item = menu_exec(&mainmenu, current_item); switch (current_item) { case MENU_ABORT: case MENUITEM_EXIT: return; case MENUITEM_OSDSET: screen_osdsettings(); break; case MENUITEM_OTHERSET: screen_othersettings(); break; case MENUITEM_VIEWALL: screen_allmodes(); break; case MENUITEM_ABOUT: screen_about(); break; case MENUITEM_STORE: osd_clrscr(); /* show "saving" message because page erase needs 1-3s */ osd_fillbox(13, 13, 18, 3, ' ' | ATTRIB_DIM_BG); osd_drawborder(13, 13, 18, 3); osd_gotoxy(15, 14); osd_puts("Saving..."); spiflash_write_settings(); osd_gotoxy(15, 14); osd_puts("Settings saved"); /* wait until all buttons are released */ while (pad_buttons & PAD_ALL) if (pad_buttons & PAD_VIDEOCHANGE) return; /* now wait for any button press */ pad_clear(PAD_ALL); while (!(pad_buttons & PAD_ALL)) if (pad_buttons & PAD_VIDEOCHANGE) return; pad_clear(PAD_ALL); break; default: break; } } }
static void screen_modesettings(video_mode_t mode) { modeset_mode = mode; osd_clrscr(); menu_draw(&modeset_menu); menu_exec(&modeset_menu, 0); }