From f4ce05f33d3d5dcfbdd33a74a14c2ac23e379526 Mon Sep 17 00:00:00 2001 From: Wintermate Date: Wed, 23 Oct 2013 02:31:28 +0200 Subject: [PATCH] =?utf8?q?Hauptmen=C3=BC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- badge/main.c | 58 ++++++++++++++++++++++++++++++++++------------- badge/ui/event.c | 4 ++++ badge/ui/event.h | 1 + badge/ui/vanity.c | 2 +- 4 files changed, 48 insertions(+), 17 deletions(-) diff --git a/badge/main.c b/badge/main.c index 54371bc..87927b9 100644 --- a/badge/main.c +++ b/badge/main.c @@ -54,6 +54,7 @@ #endif #include "init.h" +#include "ui/browser.h" #include "ui/display.h" #include "ui/event.h" #include "ui/font.h" @@ -186,23 +187,58 @@ void rbInit() { #endif void usbmode(void) { - badge_framebuffer fb = { { { 0 } } }; + badge_event_stop(); - badge_framebuffer_render_text(&fb, 23, 30, "USB-Modus"); + badge_framebuffer fb = { { { 0 } } }; + + badge_framebuffer_render_text(&fb, 23, 30, "USB-Modus"); /* badge_framebuffer_render_number(&fb, 23, 50, sizeof(jumpnrun_tile)); badge_framebuffer_render_number(&fb, 33, 50, sizeof(jumpnrun_item)); badge_framebuffer_render_number(&fb, 48, 50, sizeof(jumpnrun_enemy)); */ - badge_framebuffer_flush(&fb); - usbMSCInit(); - for(;;); + badge_framebuffer_flush(&fb); + usbMSCInit(); + for(;;); } void scrolltest(void) { badge_browse_textfile("/fahrplan/test.txt"); } +uint8_t main_menu_show(uint8_t selected) { + char const menu_buf[][15] = { + "Vanity-Screen", + "Super Hackio", + "Fahrplan", + "USB-Modus" + }; + + char const *menu[ARRAY_SIZE(menu_buf)]; + for(uint8_t i = 0; i < ARRAY_SIZE(menu_buf); ++i) { + menu[i] = menu_buf[i]; + } + + f_chdir("/"); + // first_visible = 0, weil Menü so kurz. Ggf. Parameter aus main_menu empfangen und merken. + size_t first_visible = 0; + return (uint8_t) badge_menu(menu, ARRAY_SIZE(menu), &first_visible, selected); +} + +void main_menu(void) { + uint8_t selected = 0; + + for(;;) { + selected = main_menu_show(selected); + switch(selected) { + case 0: badge_vanity_show(); break; + case 1: jumpnrun_play (); break; + case 2: scrolltest (); break; + case 3: usbmode (); break; + } + } +} + int main(void) { cpuInit(); @@ -224,17 +260,7 @@ int main(void) } badge_event_start(); - - if(badge_input_raw() & BADGE_EVENT_KEY_UP) { - scrolltest(); - } - - if(badge_input_raw() & BADGE_EVENT_KEY_LEFT) { - badge_vanity_show(); - } - - jumpnrun_play(); - usbmode(); + main_menu(); return 0; } diff --git a/badge/ui/event.c b/badge/ui/event.c index eb4f44a..157c8c9 100644 --- a/badge/ui/event.c +++ b/badge/ui/event.c @@ -88,3 +88,7 @@ void badge_event_start(void) { timer32SetIntHandler(badge_event_irq); timer32Enable(0); } + +void badge_event_stop (void) { + timer32Disable(0); +} diff --git a/badge/ui/event.h b/badge/ui/event.h index cfaa47c..4a165ee 100644 --- a/badge/ui/event.h +++ b/badge/ui/event.h @@ -37,6 +37,7 @@ extern "C" { badge_event_t badge_event_wait(void); void badge_event_start(void); + void badge_event_stop (void); #ifdef __cplusplus } diff --git a/badge/ui/vanity.c b/badge/ui/vanity.c index 4c486d1..af8dbd7 100644 --- a/badge/ui/vanity.c +++ b/badge/ui/vanity.c @@ -15,7 +15,7 @@ void badge_vanity_show(void) { FIL fd; badge_framebuffer fb; - unsigned min_ticks = 75; + unsigned min_ticks = 50; if(FR_OK == f_open(&fd, VANITY_IMAGE_FILE, FA_OPEN_EXISTING | FA_READ)) { badge_vanity_read_from_fd(&fd, &fb); -- 2.20.1