From 61a8e0178b6ceee1e26af3d7b14b0e3ffe86421b Mon Sep 17 00:00:00 2001 From: sorgelig Date: Sun, 2 Jul 2017 21:40:44 +0800 Subject: [PATCH] Add cold reset to OSD. --- menu.c | 59 ++++++++++++++++++++++++++++------------------------------ 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/menu.c b/menu.c index 046aba0..a8d91d6 100644 --- a/menu.c +++ b/menu.c @@ -1077,25 +1077,27 @@ void HandleUI(void) helptext = helptexts[HELPTEXT_MAIN]; m = 0; if (user_io_core_type() == CORE_TYPE_MINIMIG2) m = 1; - menumask = m ? 0x3f : 0x7f; // 5 selections + Exit + menumask = m ? 0x7f : 0xff; OsdSetTitle("System", OSD_ARROW_LEFT); menustate = MENU_8BIT_SYSTEM2; parentstate = MENU_8BIT_SYSTEM1; - OsdWrite(0, "", 0, 0); - OsdWrite(1, " Firmware & Core \x16", menusub == 0, 0); + if (OsdIsBig) OsdWrite(0, "", 0, 0); + OsdWrite(OsdIsBig ? 1 : 0, " Firmware & Core \x16", menusub == 0, 0); if(OsdIsBig) OsdWrite(2, "", 0, 0); - OsdWrite(OsdIsBig ? 3 : 2, " Define joystick buttons", menusub == 1, 0); - OsdWrite(OsdIsBig ? 4 : 3, " Keyboard Test", menusub == 2, 0); + OsdWrite(OsdIsBig ? 3 : 1, " Define joystick buttons", menusub == 1, 0); + OsdWrite(OsdIsBig ? 4 : 2, " Keyboard Test", menusub == 2, 0); if (OsdIsBig) OsdWrite(5, "", 0, 0); - OsdWrite(OsdIsBig ? 6 : 4, m ? " Reset" : " Reset settings", menusub == 3, 0); + OsdWrite(OsdIsBig ? 6 : 3, m ? " Reset" : " Reset settings", menusub == 3, 0); if (m) - OsdWrite(OsdIsBig ? 7 : 5, "", 0, 0); + OsdWrite(OsdIsBig ? 7 : 4, "", 0, 0); else - OsdWrite(OsdIsBig ? 7 : 5, " Save settings", menusub == 4, 0); // Minimig saves settings elsewhere + OsdWrite(OsdIsBig ? 7 : 4, " Save settings", menusub == 4, 0); // Minimig saves settings elsewhere if (OsdIsBig) OsdWrite(8, "", 0, 0); - OsdWrite(OsdIsBig ? 9 : 6, " About", menusub == (5 - m), 0); - if(OsdIsBig) for (int i = 10; i < OsdGetSize() - 1; i++) OsdWrite(i, "", 0, 0); - OsdWrite(OsdGetSize() - 1, STD_EXIT, menusub == (6 - m), 0); + OsdWrite(OsdIsBig ? 9 : 5, " Cold reset", menusub == (5 - m), 0); + if (OsdIsBig) OsdWrite(10, "", 0, 0); + OsdWrite(OsdIsBig ? 11 : 6, " About", menusub == (6 - m), 0); + if(OsdIsBig) for (int i = 12; i < OsdGetSize() - 1; i++) OsdWrite(i, "", 0, 0); + OsdWrite(OsdGetSize() - 1, STD_EXIT, menusub == (7 - m), 0); break; case MENU_8BIT_SYSTEM2: @@ -1128,8 +1130,7 @@ void HandleUI(void) case 4: if (m) { - menustate = MENU_8BIT_ABOUT1; - menusub = 0; + reboot(1); } else { @@ -1143,6 +1144,15 @@ void HandleUI(void) } break; case 5: + if (m) { + menustate = MENU_8BIT_ABOUT1; + menusub = 0; + } + else { + reboot(1); + } + break; + case 6: if (m) { menustate = MENU_NONE1; menusub = 0; @@ -1153,7 +1163,7 @@ void HandleUI(void) menusub = 0; } break; - case 6: + case 7: // Exit menustate = MENU_NONE1; menusub = 0; @@ -1253,24 +1263,11 @@ void HandleUI(void) OsdDrawLogo(4, 4, 1); OsdDrawLogo(5, 5, 1); ScrollText(OsdIsBig ? 13 : 6, " MiST by Till Harbaum, based on Minimig by Dennis van Weeren and other projects. MiST hardware and software is distributed under the terms of the GNU General Public License version 3. MiST FPGA cores are the work of their respective authors under individual licensing.", 0, 0, 0, 0); - // menu key closes menu - if (menu) { + + if (menu | select | left) + { menustate = MENU_8BIT_SYSTEM1; - menusub = 5-m; - } - if (select) { - //iprintf("Selected", 0); - if (menusub == 0) { - menustate = MENU_8BIT_SYSTEM1; - menusub = 5-m; - } - } - else { - if (left) - { - menustate = MENU_8BIT_SYSTEM1; - menusub = 5-m; - } + menusub = 6-m; } break;