summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2003-04-23 09:21:37 +0000
committerBjörn Stenberg <bjorn@haxx.se>2003-04-23 09:21:37 +0000
commit28cce684a3f433200e5257eb929ee8d7a63b67ff (patch)
tree6afe48a8bd53bac805e6ae19dd58f6843af5ccf1
parent86587527f52db8320f8d8ea48dfc76d3d93d79c8 (diff)
downloadrockbox-28cce684a3f433200e5257eb929ee8d7a63b67ff.tar.gz
rockbox-28cce684a3f433200e5257eb929ee8d7a63b67ff.zip
Changed remote control button events to separate codes. Now the remote control works while keys are locked.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3586 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/recorder/wormlet.c4
-rw-r--r--apps/tree.c10
-rw-r--r--apps/wps.c17
-rw-r--r--firmware/drivers/serial.c16
-rw-r--r--firmware/export/button.h22
5 files changed, 39 insertions, 30 deletions
diff --git a/apps/recorder/wormlet.c b/apps/recorder/wormlet.c
index d6850dc039..2937a1bb83 100644
--- a/apps/recorder/wormlet.c
+++ b/apps/recorder/wormlet.c
@@ -1348,11 +1348,11 @@ static bool run(void)
1348 player2_dir = (player2_dir + 1) % 4; 1348 player2_dir = (player2_dir + 1) % 4;
1349 break; 1349 break;
1350 1350
1351 case BUTTON_VOL_UP: 1351 case BUTTON_RC_VOL_UP:
1352 player3_dir = (player3_dir + 1) % 4; 1352 player3_dir = (player3_dir + 1) % 4;
1353 break; 1353 break;
1354 1354
1355 case BUTTON_VOL_DOWN: 1355 case BUTTON_RC_VOL_DOWN:
1356 player3_dir = (player3_dir + 3) % 4; 1356 player3_dir = (player3_dir + 3) % 4;
1357 break; 1357 break;
1358 1358
diff --git a/apps/tree.c b/apps/tree.c
index a29cc5e420..7abafe8f4a 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -521,6 +521,7 @@ bool ask_resume(void)
521 521
522 switch (button_get(true)) { 522 switch (button_get(true)) {
523 case BUTTON_PLAY: 523 case BUTTON_PLAY:
524 case BUTTON_RC_PLAY:
524 return true; 525 return true;
525 526
526 case SYS_USB_CONNECTED: 527 case SYS_USB_CONNECTED:
@@ -686,6 +687,7 @@ static bool handle_on(int* ds, int* dc, int numentries, int tree_max_on_screen)
686 while (!exit) { 687 while (!exit) {
687 switch (button_get(true)) { 688 switch (button_get(true)) {
688 case TREE_PREV: 689 case TREE_PREV:
690 case BUTTON_RC_LEFT:
689 case BUTTON_ON | TREE_PREV: 691 case BUTTON_ON | TREE_PREV:
690 case BUTTON_ON | TREE_PREV | BUTTON_REPEAT: 692 case BUTTON_ON | TREE_PREV | BUTTON_REPEAT:
691 used = true; 693 used = true;
@@ -699,6 +701,7 @@ static bool handle_on(int* ds, int* dc, int numentries, int tree_max_on_screen)
699 break; 701 break;
700 702
701 case TREE_NEXT: 703 case TREE_NEXT:
704 case BUTTON_RC_RIGHT:
702 case BUTTON_ON | TREE_NEXT: 705 case BUTTON_ON | TREE_NEXT:
703 case BUTTON_ON | TREE_NEXT | BUTTON_REPEAT: 706 case BUTTON_ON | TREE_NEXT | BUTTON_REPEAT:
704 used = true; 707 used = true;
@@ -714,6 +717,7 @@ static bool handle_on(int* ds, int* dc, int numentries, int tree_max_on_screen)
714 717
715 718
716 case BUTTON_PLAY: 719 case BUTTON_PLAY:
720 case BUTTON_RC_PLAY:
717 case BUTTON_ON | BUTTON_PLAY: 721 case BUTTON_ON | BUTTON_PLAY:
718 if (currdir[1]) 722 if (currdir[1])
719 snprintf(buf, sizeof buf, "%s/%s", 723 snprintf(buf, sizeof buf, "%s/%s",
@@ -804,6 +808,7 @@ bool dirbrowse(char *root)
804 button = button_get_w_tmo(HZ/5); 808 button = button_get_w_tmo(HZ/5);
805 switch ( button ) { 809 switch ( button ) {
806 case TREE_EXIT: 810 case TREE_EXIT:
811 case BUTTON_RC_STOP:
807 case TREE_EXIT | BUTTON_REPEAT: 812 case TREE_EXIT | BUTTON_REPEAT:
808 i=strlen(currdir); 813 i=strlen(currdir);
809 if (i>1) { 814 if (i>1) {
@@ -848,6 +853,7 @@ bool dirbrowse(char *root)
848 853
849 case TREE_ENTER: 854 case TREE_ENTER:
850 case TREE_ENTER | BUTTON_REPEAT: 855 case TREE_ENTER | BUTTON_REPEAT:
856 case BUTTON_RC_PLAY:
851#ifdef HAVE_RECORDER_KEYPAD 857#ifdef HAVE_RECORDER_KEYPAD
852 case BUTTON_PLAY: 858 case BUTTON_PLAY:
853 case BUTTON_PLAY | BUTTON_REPEAT: 859 case BUTTON_PLAY | BUTTON_REPEAT:
@@ -1005,7 +1011,7 @@ bool dirbrowse(char *root)
1005 1011
1006 case TREE_PREV: 1012 case TREE_PREV:
1007 case TREE_PREV | BUTTON_REPEAT: 1013 case TREE_PREV | BUTTON_REPEAT:
1008 case BUTTON_VOL_UP: 1014 case BUTTON_RC_VOL_UP:
1009 if(filesindir) { 1015 if(filesindir) {
1010 if(dircursor) { 1016 if(dircursor) {
1011 put_cursorxy(CURSOR_X, CURSOR_Y + dircursor, false); 1017 put_cursorxy(CURSOR_X, CURSOR_Y + dircursor, false);
@@ -1043,7 +1049,7 @@ bool dirbrowse(char *root)
1043 1049
1044 case TREE_NEXT: 1050 case TREE_NEXT:
1045 case TREE_NEXT | BUTTON_REPEAT: 1051 case TREE_NEXT | BUTTON_REPEAT:
1046 case BUTTON_VOL_DOWN: 1052 case BUTTON_RC_VOL_DOWN:
1047 if(filesindir) 1053 if(filesindir)
1048 { 1054 {
1049 if (dircursor + dirstart + 1 < numentries ) { 1055 if (dircursor + dirstart + 1 < numentries ) {
diff --git a/apps/wps.c b/apps/wps.c
index 0fbe8d713e..a82ebc1a80 100644
--- a/apps/wps.c
+++ b/apps/wps.c
@@ -574,7 +574,7 @@ static bool menu(void)
574 case BUTTON_MENU | BUTTON_REL: 574 case BUTTON_MENU | BUTTON_REL:
575#endif 575#endif
576 exit = true; 576 exit = true;
577 if ( !last_button ) { 577 if ( !last_button && !keys_locked ) {
578 lcd_stop_scroll(); 578 lcd_stop_scroll();
579 579
580 if (main_menu()) 580 if (main_menu())
@@ -807,6 +807,13 @@ int wps_show(void)
807 continue; 807 continue;
808 } 808 }
809 809
810 /* ignore non-remote buttons when keys are locked */
811 if (keys_locked &&
812 ! ((button & BUTTON_F1) ||
813 (button == SYS_USB_CONNECTED) ||
814 (button & BUTTON_REMOTE)))
815 continue;
816
810 switch(button) 817 switch(button)
811 { 818 {
812 case BUTTON_ON: 819 case BUTTON_ON:
@@ -848,6 +855,7 @@ int wps_show(void)
848 855
849 /* play/pause */ 856 /* play/pause */
850 case BUTTON_PLAY: 857 case BUTTON_PLAY:
858 case BUTTON_RC_PLAY:
851 if ( paused ) 859 if ( paused )
852 { 860 {
853 paused = false; 861 paused = false;
@@ -879,7 +887,7 @@ int wps_show(void)
879 case BUTTON_UP: 887 case BUTTON_UP:
880 case BUTTON_UP | BUTTON_REPEAT: 888 case BUTTON_UP | BUTTON_REPEAT:
881#endif 889#endif
882 case BUTTON_VOL_UP: 890 case BUTTON_RC_VOL_UP:
883 global_settings.volume++; 891 global_settings.volume++;
884 if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) 892 if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME))
885 global_settings.volume = mpeg_sound_max(SOUND_VOLUME); 893 global_settings.volume = mpeg_sound_max(SOUND_VOLUME);
@@ -893,7 +901,7 @@ int wps_show(void)
893 case BUTTON_DOWN: 901 case BUTTON_DOWN:
894 case BUTTON_DOWN | BUTTON_REPEAT: 902 case BUTTON_DOWN | BUTTON_REPEAT:
895#endif 903#endif
896 case BUTTON_VOL_DOWN: 904 case BUTTON_RC_VOL_DOWN:
897 global_settings.volume--; 905 global_settings.volume--;
898 if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) 906 if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME))
899 global_settings.volume = mpeg_sound_min(SOUND_VOLUME); 907 global_settings.volume = mpeg_sound_min(SOUND_VOLUME);
@@ -909,6 +917,7 @@ int wps_show(void)
909 break; 917 break;
910 918
911 /* prev / restart */ 919 /* prev / restart */
920 case BUTTON_RC_LEFT:
912 case BUTTON_LEFT | BUTTON_REL: 921 case BUTTON_LEFT | BUTTON_REL:
913#ifdef HAVE_RECORDER_KEYPAD 922#ifdef HAVE_RECORDER_KEYPAD
914 if ( lastbutton != BUTTON_LEFT ) 923 if ( lastbutton != BUTTON_LEFT )
@@ -929,6 +938,7 @@ int wps_show(void)
929 break; 938 break;
930 939
931 /* next */ 940 /* next */
941 case BUTTON_RC_RIGHT:
932 case BUTTON_RIGHT | BUTTON_REL: 942 case BUTTON_RIGHT | BUTTON_REL:
933#ifdef HAVE_RECORDER_KEYPAD 943#ifdef HAVE_RECORDER_KEYPAD
934 if ( lastbutton != BUTTON_RIGHT ) 944 if ( lastbutton != BUTTON_RIGHT )
@@ -973,6 +983,7 @@ int wps_show(void)
973#ifdef HAVE_RECORDER_KEYPAD 983#ifdef HAVE_RECORDER_KEYPAD
974 case BUTTON_OFF: 984 case BUTTON_OFF:
975#else 985#else
986 case BUTTON_RC_STOP:
976 case BUTTON_STOP | BUTTON_REL: 987 case BUTTON_STOP | BUTTON_REL:
977 if ( lastbutton != BUTTON_STOP ) 988 if ( lastbutton != BUTTON_STOP )
978 break; 989 break;
diff --git a/firmware/drivers/serial.c b/firmware/drivers/serial.c
index 982b99fc2c..5ea807abb4 100644
--- a/firmware/drivers/serial.c
+++ b/firmware/drivers/serial.c
@@ -91,31 +91,27 @@ int remote_control_rx(void)
91 switch (btn) 91 switch (btn)
92 { 92 {
93 case STOP: 93 case STOP:
94#ifdef HAVE_RECORDER_KEYPAD 94 last_valid_button = BUTTON_RC_STOP;
95 last_valid_button = BUTTON_OFF;
96#else
97 last_valid_button = BUTTON_STOP;
98#endif
99 break; 95 break;
100 96
101 case PLAY: 97 case PLAY:
102 last_valid_button = BUTTON_PLAY; 98 last_valid_button = BUTTON_RC_PLAY;
103 break; 99 break;
104 100
105 case VOLUP: 101 case VOLUP:
106 last_valid_button = BUTTON_VOL_UP; 102 last_valid_button = BUTTON_RC_VOL_UP;
107 break; 103 break;
108 104
109 case VOLDN: 105 case VOLDN:
110 last_valid_button = BUTTON_VOL_DOWN; 106 last_valid_button = BUTTON_RC_VOL_DOWN;
111 break; 107 break;
112 108
113 case PREV: 109 case PREV:
114 last_valid_button = BUTTON_LEFT; 110 last_valid_button = BUTTON_RC_LEFT;
115 break; 111 break;
116 112
117 case NEXT: 113 case NEXT:
118 last_valid_button = BUTTON_RIGHT; 114 last_valid_button = BUTTON_RC_RIGHT;
119 break; 115 break;
120 116
121#ifdef SCREENDUMP 117#ifdef SCREENDUMP
diff --git a/firmware/export/button.h b/firmware/export/button.h
index c980e2e36c..e3c37f9382 100644
--- a/firmware/export/button.h
+++ b/firmware/export/button.h
@@ -1,3 +1,4 @@
1
1/*************************************************************************** 2/***************************************************************************
2 * __________ __ ___. 3 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___ 4 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
@@ -37,16 +38,18 @@ int button_get_w_tmo(int ticks);
37#define BUTTON_LEFT 0x0040 38#define BUTTON_LEFT 0x0040
38#define BUTTON_RIGHT 0x0080 39#define BUTTON_RIGHT 0x0080
39 40
40/* remote control buttons */
41#define BUTTON_VOL_UP 0x1000
42#define BUTTON_VOL_DOWN 0x1001
43
44/* Button modifiers */ 41/* Button modifiers */
42#define BUTTON_REMOTE 0x2000
45#define BUTTON_REPEAT 0x4000 43#define BUTTON_REPEAT 0x4000
46#define BUTTON_REL 0x8000 44#define BUTTON_REL 0x8000
47 45
48/* Special message */ 46/* remote control buttons */
49#define BUTTON_LOCKED 0x2000 47#define BUTTON_RC_VOL_UP (0x0008 | BUTTON_REMOTE)
48#define BUTTON_RC_VOL_DOWN (0x0800 | BUTTON_REMOTE)
49#define BUTTON_RC_PLAY (BUTTON_UP | BUTTON_REMOTE)
50#define BUTTON_RC_STOP (BUTTON_DOWN | BUTTON_REMOTE)
51#define BUTTON_RC_LEFT (BUTTON_LEFT | BUTTON_REMOTE)
52#define BUTTON_RC_RIGHT (BUTTON_RIGHT| BUTTON_REMOTE)
50 53
51#ifdef HAVE_RECORDER_KEYPAD 54#ifdef HAVE_RECORDER_KEYPAD
52 55
@@ -57,10 +60,6 @@ int button_get_w_tmo(int ticks);
57#define BUTTON_F2 0x0200 60#define BUTTON_F2 0x0200
58#define BUTTON_F3 0x0400 61#define BUTTON_F3 0x0400
59 62
60#define ALL_BUTTONS (BUTTON_ON | BUTTON_UP | BUTTON_DOWN | BUTTON_LEFT | \
61 BUTTON_RIGHT | BUTTON_OFF | BUTTON_PLAY | BUTTON_F1 | \
62 BUTTON_F2 | BUTTON_F3)
63
64#elif HAVE_PLAYER_KEYPAD 63#elif HAVE_PLAYER_KEYPAD
65 64
66/* Jukebox 6000 and Studio specific button codes */ 65/* Jukebox 6000 and Studio specific button codes */
@@ -68,9 +67,6 @@ int button_get_w_tmo(int ticks);
68#define BUTTON_PLAY BUTTON_UP 67#define BUTTON_PLAY BUTTON_UP
69#define BUTTON_STOP BUTTON_DOWN 68#define BUTTON_STOP BUTTON_DOWN
70 69
71#define ALL_BUTTONS (BUTTON_ON | BUTTON_UP | BUTTON_DOWN | BUTTON_LEFT | \
72 BUTTON_RIGHT | BUTTON_MENU)
73
74#endif /* HAVE_PLAYER_KEYPAD */ 70#endif /* HAVE_PLAYER_KEYPAD */
75 71
76#endif 72#endif