diff options
author | Björn Stenberg <bjorn@haxx.se> | 2003-04-23 09:21:37 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2003-04-23 09:21:37 +0000 |
commit | 28cce684a3f433200e5257eb929ee8d7a63b67ff (patch) | |
tree | 6afe48a8bd53bac805e6ae19dd58f6843af5ccf1 | |
parent | 86587527f52db8320f8d8ea48dfc76d3d93d79c8 (diff) | |
download | rockbox-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.c | 4 | ||||
-rw-r--r-- | apps/tree.c | 10 | ||||
-rw-r--r-- | apps/wps.c | 17 | ||||
-rw-r--r-- | firmware/drivers/serial.c | 16 | ||||
-rw-r--r-- | firmware/export/button.h | 22 |
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 |