diff options
| author | Linus Nielsen Feltzing <linus@haxx.se> | 2004-07-26 16:06:59 +0000 |
|---|---|---|
| committer | Linus Nielsen Feltzing <linus@haxx.se> | 2004-07-26 16:06:59 +0000 |
| commit | ade5d7b848bf9c0d46bb14c85528453f969c9429 (patch) | |
| tree | 197aa919b9a3c2a89f77d12b01cc1c2c23f7e37f /apps/wps.c | |
| parent | 3d91885718a1fb9d6d55f07f67a9a1942a352c5e (diff) | |
| download | rockbox-ade5d7b848bf9c0d46bb14c85528453f969c9429.zip rockbox-ade5d7b848bf9c0d46bb14c85528453f969c9429.tar.gz rockbox-ade5d7b848bf9c0d46bb14c85528453f969c9429.tar.bz2 rockbox-ade5d7b848bf9c0d46bb14c85528453f969c9429.tar.xz | |
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
Diffstat (limited to 'apps/wps.c')
| -rw-r--r-- | apps/wps.c | 49 |
1 files changed, 28 insertions, 21 deletions
@@ -48,6 +48,8 @@ #endif #include "lang.h" #include "bookmark.h" +#include "misc.h" + #define FF_REWIND_MAX_PERCENT 3 /* cap ff/rewind step size at max % of file */ /* 3% of 30min file == 54s step size */ #define MIN_FF_REWIND_STEP 500 @@ -296,9 +298,9 @@ bool browse_id3(void) exit = true; break; - case SYS_USB_CONNECTED: - usb_screen(); - return true; + default: + if(default_event_handler(button) == SYS_USB_CONNECTED) + return true; break; } } @@ -419,11 +421,12 @@ static bool ffwd_rew(int button) exit = true; break; - case SYS_USB_CONNECTED: - status_set_ffmode(0); - usb_screen(); - usb = true; - exit = true; + default: + if(default_event_handler(button) == SYS_USB_CONNECTED) { + status_set_ffmode(0); + usb = true; + exit = true; + } break; } if (!exit) @@ -511,10 +514,12 @@ static bool menu(void) while (button_get(false)); /* clear button queue */ break; - case SYS_USB_CONNECTED: - usb_screen(); - keys_locked = false; - return true; + default: + if(default_event_handler(button) == SYS_USB_CONNECTED) { + keys_locked = false; + return true; + } + break; } if (keys_locked) { @@ -754,19 +759,20 @@ int wps_show(void) if (button && ignore_keyup) { ignore_keyup = false; - if (button & BUTTON_REL && button != SYS_USB_CONNECTED) + /* Negative events are system events */ + if (button >= 0 && button & BUTTON_REL ) continue; } /* ignore non-remote buttons when keys are locked */ if (keys_locked && + ! ((button < 0) || #ifdef HAVE_RECORDER_KEYPAD - ! ((button & BUTTON_F1) || + (button & BUTTON_F1) || #else - ! ((button & BUTTON_MENU) || + (button & BUTTON_MENU) || #endif - (button == BUTTON_NONE) || - (button == SYS_USB_CONNECTED) + (button == BUTTON_NONE) #ifdef BUTTON_REMOTE || (button & BUTTON_REMOTE) #endif @@ -970,13 +976,14 @@ int wps_show(void) exit = true; break; - case SYS_USB_CONNECTED: - usb_screen(); - return SYS_USB_CONNECTED; - case BUTTON_NONE: /* Timeout */ update_track = true; break; + + default: + if(default_event_handler(button) == SYS_USB_CONNECTED) + return SYS_USB_CONNECTED; + break; } if (update_track) |