From ade5d7b848bf9c0d46bb14c85528453f969c9429 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Mon, 26 Jul 2004 16:06:59 +0000 Subject: First step in revamping the USB event handling, paving the way for the upcoming SYS_POWER_OFF event git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4951 a1c6a512-1295-4272-9138-f99709370657 --- apps/recorder/keyboard.c | 18 +++++++++++------- apps/recorder/radio.c | 6 +++++- apps/recorder/recording.c | 28 +++++++++++++++++++--------- 3 files changed, 35 insertions(+), 17 deletions(-) (limited to 'apps/recorder') diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c index 32a1d8b735..0331a5711d 100644 --- a/apps/recorder/keyboard.c +++ b/apps/recorder/keyboard.c @@ -28,6 +28,7 @@ #include "status.h" #include "talk.h" #include "settings.h" +#include "misc.h" #define KEYBOARD_LINES 4 #define KEYBOARD_PAGES 3 @@ -89,6 +90,7 @@ int kbd_input(char* text, int buflen) char outline[256]; char c = 0; struct font* font = font_get(FONT_SYSFIXED); + int button; lcd_setfont(FONT_SYSFIXED); font_w = font->maxwidth; @@ -193,8 +195,9 @@ int kbd_input(char* text, int buflen) /* The default action is to redraw */ redraw = true; - - switch ( button_get_w_tmo(HZ/2) ) { + + button = button_get_w_tmo(HZ/2); + switch ( button ) { case BUTTON_OFF: /* abort */ @@ -309,15 +312,16 @@ int kbd_input(char* text, int buflen) kbd_spellchar(text[editpos]); break; - case SYS_USB_CONNECTED: - usb_screen(); - lcd_setfont(FONT_SYSFIXED); - break; - case BUTTON_NONE: status_draw(false); redraw = false; break; + + default: + if(default_event_handler(button) == SYS_USB_CONNECTED) + lcd_setfont(FONT_SYSFIXED); + break; + } } lcd_setfont(FONT_UI); diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c index 36847236e1..e26ac5bdc8 100644 --- a/apps/recorder/radio.c +++ b/apps/recorder/radio.c @@ -416,13 +416,17 @@ bool radio_screen(void) /* Only accept USB connection when not recording */ if(mpeg_status() != MPEG_STATUS_RECORD) { - usb_screen(); + default_event_handler(SYS_USB_CONNECTED); fmradio_set_status(0); screen_freeze = true; /* Cosmetic: makes sure the radio screen doesn't redraw */ done = true; } break; + + default: + default_event_handler(button); + break; } peak_meter_peek(); diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index a077c957a7..242351a0d6 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c @@ -437,11 +437,15 @@ bool recording_screen(void) /* Only accept USB connection when not recording */ if(mpeg_status() != MPEG_STATUS_RECORD) { - usb_screen(); + default_event_handler(SYS_USB_CONNECTED); done = true; been_in_usb_mode = true; } break; + + default: + default_event_handler(button); + break; } peak_meter_peek(); @@ -622,6 +626,7 @@ bool f2_rec_screen(void) bool used = false; int w, h; char buf[32]; + int button; lcd_setfont(FONT_SYSFIXED); lcd_getstringsize("A",&w,&h); @@ -671,7 +676,8 @@ bool f2_rec_screen(void) lcd_update(); - switch (button_get(true)) { + button = button_get(true); + switch (button) { case BUTTON_LEFT: case BUTTON_F2 | BUTTON_LEFT: global_settings.rec_quality++; @@ -706,9 +712,10 @@ bool f2_rec_screen(void) used = true; break; - case SYS_USB_CONNECTED: - usb_screen(); - return true; + default: + if(default_event_handler(button) == SYS_USB_CONNECTED) + return true; + break; } } @@ -735,6 +742,7 @@ bool f3_rec_screen(void) bool exit = false; bool used = false; int w, h; + int button; char *src_str[] = { str(LANG_RECORDING_SRC_MIC), @@ -760,7 +768,8 @@ bool f3_rec_screen(void) lcd_update(); - switch (button_get(true)) { + button = button_get(true); + switch (button) { case BUTTON_LEFT: case BUTTON_F3 | BUTTON_LEFT: global_settings.rec_source++; @@ -779,9 +788,10 @@ bool f3_rec_screen(void) used = true; break; - case SYS_USB_CONNECTED: - usb_screen(); - return true; + default: + if(default_event_handler(button) == SYS_USB_CONNECTED) + return true; + break; } } -- cgit v1.2.3