summaryrefslogtreecommitdiff
path: root/apps/wps.c
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2004-07-26 16:06:59 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2004-07-26 16:06:59 +0000
commitade5d7b848bf9c0d46bb14c85528453f969c9429 (patch)
tree197aa919b9a3c2a89f77d12b01cc1c2c23f7e37f /apps/wps.c
parent3d91885718a1fb9d6d55f07f67a9a1942a352c5e (diff)
downloadrockbox-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.c49
1 files changed, 28 insertions, 21 deletions
diff --git a/apps/wps.c b/apps/wps.c
index 8943a4d..86ce4b0 100644
--- a/apps/wps.c
+++ b/apps/wps.c
@@ -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)