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.tar.gz
rockbox-ade5d7b848bf9c0d46bb14c85528453f969c9429.zip
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 8943a4d2fb..86ce4b09c1 100644
--- a/apps/wps.c
+++ b/apps/wps.c
@@ -48,6 +48,8 @@
48#endif 48#endif
49#include "lang.h" 49#include "lang.h"
50#include "bookmark.h" 50#include "bookmark.h"
51#include "misc.h"
52
51#define FF_REWIND_MAX_PERCENT 3 /* cap ff/rewind step size at max % of file */ 53#define FF_REWIND_MAX_PERCENT 3 /* cap ff/rewind step size at max % of file */
52 /* 3% of 30min file == 54s step size */ 54 /* 3% of 30min file == 54s step size */
53#define MIN_FF_REWIND_STEP 500 55#define MIN_FF_REWIND_STEP 500
@@ -296,9 +298,9 @@ bool browse_id3(void)
296 exit = true; 298 exit = true;
297 break; 299 break;
298 300
299 case SYS_USB_CONNECTED: 301 default:
300 usb_screen(); 302 if(default_event_handler(button) == SYS_USB_CONNECTED)
301 return true; 303 return true;
302 break; 304 break;
303 } 305 }
304 } 306 }
@@ -419,11 +421,12 @@ static bool ffwd_rew(int button)
419 exit = true; 421 exit = true;
420 break; 422 break;
421 423
422 case SYS_USB_CONNECTED: 424 default:
423 status_set_ffmode(0); 425 if(default_event_handler(button) == SYS_USB_CONNECTED) {
424 usb_screen(); 426 status_set_ffmode(0);
425 usb = true; 427 usb = true;
426 exit = true; 428 exit = true;
429 }
427 break; 430 break;
428 } 431 }
429 if (!exit) 432 if (!exit)
@@ -511,10 +514,12 @@ static bool menu(void)
511 while (button_get(false)); /* clear button queue */ 514 while (button_get(false)); /* clear button queue */
512 break; 515 break;
513 516
514 case SYS_USB_CONNECTED: 517 default:
515 usb_screen(); 518 if(default_event_handler(button) == SYS_USB_CONNECTED) {
516 keys_locked = false; 519 keys_locked = false;
517 return true; 520 return true;
521 }
522 break;
518 } 523 }
519 524
520 if (keys_locked) { 525 if (keys_locked) {
@@ -754,19 +759,20 @@ int wps_show(void)
754 if (button && ignore_keyup) 759 if (button && ignore_keyup)
755 { 760 {
756 ignore_keyup = false; 761 ignore_keyup = false;
757 if (button & BUTTON_REL && button != SYS_USB_CONNECTED) 762 /* Negative events are system events */
763 if (button >= 0 && button & BUTTON_REL )
758 continue; 764 continue;
759 } 765 }
760 766
761 /* ignore non-remote buttons when keys are locked */ 767 /* ignore non-remote buttons when keys are locked */
762 if (keys_locked && 768 if (keys_locked &&
769 ! ((button < 0) ||
763#ifdef HAVE_RECORDER_KEYPAD 770#ifdef HAVE_RECORDER_KEYPAD
764 ! ((button & BUTTON_F1) || 771 (button & BUTTON_F1) ||
765#else 772#else
766 ! ((button & BUTTON_MENU) || 773 (button & BUTTON_MENU) ||
767#endif 774#endif
768 (button == BUTTON_NONE) || 775 (button == BUTTON_NONE)
769 (button == SYS_USB_CONNECTED)
770#ifdef BUTTON_REMOTE 776#ifdef BUTTON_REMOTE
771 || (button & BUTTON_REMOTE) 777 || (button & BUTTON_REMOTE)
772#endif 778#endif
@@ -970,13 +976,14 @@ int wps_show(void)
970 exit = true; 976 exit = true;
971 break; 977 break;
972 978
973 case SYS_USB_CONNECTED:
974 usb_screen();
975 return SYS_USB_CONNECTED;
976
977 case BUTTON_NONE: /* Timeout */ 979 case BUTTON_NONE: /* Timeout */
978 update_track = true; 980 update_track = true;
979 break; 981 break;
982
983 default:
984 if(default_event_handler(button) == SYS_USB_CONNECTED)
985 return SYS_USB_CONNECTED;
986 break;
980 } 987 }
981 988
982 if (update_track) 989 if (update_track)