summaryrefslogtreecommitdiff
path: root/apps/tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/tree.c')
-rw-r--r--apps/tree.c115
1 files changed, 49 insertions, 66 deletions
diff --git a/apps/tree.c b/apps/tree.c
index 90d7010d03..a83346b8d2 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -194,20 +194,6 @@ void tree_get_filetypes(const struct filetype** types, int* count)
194 194
195#endif /* HAVE_LCD_BITMAP */ 195#endif /* HAVE_LCD_BITMAP */
196 196
197#ifdef HAVE_RECORDER_KEYPAD
198#define TREE_NEXT BUTTON_DOWN
199#define TREE_PREV BUTTON_UP
200#define TREE_EXIT BUTTON_LEFT
201#define TREE_ENTER BUTTON_RIGHT
202#define TREE_MENU BUTTON_F1
203#else
204#define TREE_NEXT BUTTON_RIGHT
205#define TREE_PREV BUTTON_LEFT
206#define TREE_EXIT BUTTON_STOP
207#define TREE_ENTER BUTTON_PLAY
208#define TREE_MENU BUTTON_MENU
209#endif /* HAVE_RECORDER_KEYPAD */
210
211/* talkbox hovering delay, to avoid immediate disk activity */ 197/* talkbox hovering delay, to avoid immediate disk activity */
212#define HOVER_DELAY (HZ/2) 198#define HOVER_DELAY (HZ/2)
213 199
@@ -641,9 +627,9 @@ static bool ask_resume(bool ask_once)
641 while (!stop) { 627 while (!stop) {
642 button = button_get(true); 628 button = button_get(true);
643 switch (button) { 629 switch (button) {
644 case BUTTON_PLAY: 630 case TREE_RUN:
645#ifdef BUTTON_RC_PLAY 631#ifdef TREE_RC_RUN
646 case BUTTON_RC_PLAY: 632 case TREE_RC_RUN:
647#endif 633#endif
648 return true; 634 return true;
649 635
@@ -771,9 +757,10 @@ void set_current_file(char *path)
771 } 757 }
772} 758}
773 759
774#ifdef BUTTON_ON 760#ifdef TREE_SHIFT
775static bool handle_on(int *ds, int *dc, int numentries, int tree_max_on_screen, 761static bool handle_shift(int *ds, int *dc, int numentries,
776 const int *dirfilter) 762 int tree_max_on_screen,
763 const int *dirfilter)
777{ 764{
778 bool exit = false; 765 bool exit = false;
779 bool used = false; 766 bool used = false;
@@ -790,12 +777,12 @@ static bool handle_on(int *ds, int *dc, int numentries, int tree_max_on_screen,
790 while (!exit) { 777 while (!exit) {
791 switch (button_get(true)) { 778 switch (button_get(true)) {
792 case TREE_PREV: 779 case TREE_PREV:
793#ifdef BUTTON_RC_LEFT 780#ifdef TREE_RC_PREV
794 case BUTTON_RC_LEFT: 781 case TREE_RC_PREV:
795#endif 782#endif
796#ifdef BUTTON_ON 783#ifdef TREE_SHIFT
797 case BUTTON_ON | TREE_PREV: 784 case TREE_SHIFT | TREE_PREV:
798 case BUTTON_ON | TREE_PREV | BUTTON_REPEAT: 785 case TREE_SHIFT | TREE_PREV | BUTTON_REPEAT:
799#endif 786#endif
800 used = true; 787 used = true;
801 if ( dirstart ) { 788 if ( dirstart ) {
@@ -808,12 +795,12 @@ static bool handle_on(int *ds, int *dc, int numentries, int tree_max_on_screen,
808 break; 795 break;
809 796
810 case TREE_NEXT: 797 case TREE_NEXT:
811#ifdef BUTTON_RC_RIGHT 798#ifdef TREE_RC_NEXT
812 case BUTTON_RC_RIGHT: 799 case TREE_RC_NEXT:
813#endif 800#endif
814#ifdef BUTTON_ON 801#ifdef TREE_SHIFT
815 case BUTTON_ON | TREE_NEXT: 802 case TREE_SHIFT | TREE_NEXT:
816 case BUTTON_ON | TREE_NEXT | BUTTON_REPEAT: 803 case TREE_SHIFT | TREE_NEXT | BUTTON_REPEAT:
817#endif 804#endif
818 used = true; 805 used = true;
819 if ( dirstart < numentries - tree_max_on_screen ) { 806 if ( dirstart < numentries - tree_max_on_screen ) {
@@ -827,12 +814,12 @@ static bool handle_on(int *ds, int *dc, int numentries, int tree_max_on_screen,
827 break; 814 break;
828 815
829 816
830 case BUTTON_PLAY: 817 case TREE_RUN:
831#ifdef BUTTON_RC_PLAY 818#ifdef TREE_RC_PLAY
832 case BUTTON_RC_PLAY: 819 case TREE_RC_RUN:
833#endif 820#endif
834#ifdef BUTTON_ON 821#ifdef TREE_SHIFT
835 case BUTTON_ON | BUTTON_PLAY: 822 case TREE_SHIFT | TREE_RUN:
836#endif 823#endif
837 { 824 {
838 int onplay_result; 825 int onplay_result;
@@ -866,10 +853,10 @@ static bool handle_on(int *ds, int *dc, int numentries, int tree_max_on_screen,
866 exit = true; 853 exit = true;
867 break; 854 break;
868 } 855 }
869#ifdef BUTTON_ON 856#ifdef TREE_SHIFT
870 case BUTTON_ON | BUTTON_REL: 857 case TREE_SHIFT | BUTTON_REL:
871 case BUTTON_ON | TREE_PREV | BUTTON_REL: 858 case TREE_SHIFT | TREE_PREV | BUTTON_REL:
872 case BUTTON_ON | TREE_NEXT | BUTTON_REL: 859 case TREE_SHIFT | TREE_NEXT | BUTTON_REL:
873 exit = true; 860 exit = true;
874 break; 861 break;
875#endif 862#endif
@@ -969,7 +956,7 @@ static bool dirbrowse(const char *root, const int *dirfilter)
969 while (!stop) { 956 while (!stop) {
970 button = button_get(true); 957 button = button_get(true);
971 switch (button) { 958 switch (button) {
972 case BUTTON_PLAY: 959 case TREE_RUN:
973 rolo_load("/" BOOTFILE); 960 rolo_load("/" BOOTFILE);
974 stop = true; 961 stop = true;
975 break; 962 break;
@@ -988,11 +975,9 @@ static bool dirbrowse(const char *root, const int *dirfilter)
988 975
989 switch ( button ) { 976 switch ( button ) {
990 case TREE_EXIT: 977 case TREE_EXIT:
991#ifdef BUTTON_RC_STOP 978 case TREE_EXIT | BUTTON_REPEAT:
992 case BUTTON_RC_STOP: 979#ifdef TREE_RC_EXIT
993#endif 980 case TREE_RC_EXIT:
994#ifdef HAVE_RECORDER_KEYPAD
995 case BUTTON_LEFT | BUTTON_REPEAT:
996#endif 981#endif
997 i=strlen(currdir); 982 i=strlen(currdir);
998 if (i>1) { 983 if (i>1) {
@@ -1027,8 +1012,8 @@ static bool dirbrowse(const char *root, const int *dirfilter)
1027 } 1012 }
1028 break; 1013 break;
1029 1014
1030#ifdef HAVE_RECORDER_KEYPAD 1015#ifdef TREE_OFF
1031 case BUTTON_OFF: 1016 case TREE_OFF:
1032 /* Stop the music if it is playing, else show the shutdown 1017 /* Stop the music if it is playing, else show the shutdown
1033 screen */ 1018 screen */
1034 if(mpeg_status()) 1019 if(mpeg_status())
@@ -1042,27 +1027,23 @@ static bool dirbrowse(const char *root, const int *dirfilter)
1042 restore = true; 1027 restore = true;
1043 } 1028 }
1044 break; 1029 break;
1045#endif
1046 1030
1047#ifdef HAVE_RECORDER_KEYPAD 1031 case TREE_OFF | BUTTON_REPEAT:
1048 case BUTTON_OFF | BUTTON_REPEAT:
1049#else
1050 case BUTTON_STOP | BUTTON_REPEAT:
1051#endif
1052 if (charger_inserted()) { 1032 if (charger_inserted()) {
1053 charging_splash(); 1033 charging_splash();
1054 restore = true; 1034 restore = true;
1055 } 1035 }
1056 break; 1036 break;
1037#endif
1057 1038
1058 case TREE_ENTER: 1039 case TREE_ENTER:
1059 case TREE_ENTER | BUTTON_REPEAT: 1040 case TREE_ENTER | BUTTON_REPEAT:
1060#ifdef BUTTON_RC_PLAY 1041#if defined TREE_RC_ENTER && (TREE_RC_ENTER != TREE_RC_RUN)
1061 case BUTTON_RC_PLAY: 1042 case TREE_RC_ENTER:
1062#endif 1043#endif
1063#ifdef HAVE_RECORDER_KEYPAD 1044#if defined TREE_RUN && (TREE_RUN != TREE_ENTER)
1064 case BUTTON_PLAY: 1045 case TREE_RUN:
1065 case BUTTON_PLAY | BUTTON_REPEAT: 1046 case TREE_RUN | BUTTON_REPEAT:
1066#endif 1047#endif
1067 if ( !numentries ) 1048 if ( !numentries )
1068 break; 1049 break;
@@ -1255,8 +1236,9 @@ static bool dirbrowse(const char *root, const int *dirfilter)
1255 1236
1256 case TREE_PREV: 1237 case TREE_PREV:
1257 case TREE_PREV | BUTTON_REPEAT: 1238 case TREE_PREV | BUTTON_REPEAT:
1258#ifdef BUTTON_RC_LEFT 1239#ifdef TREE_RC_PREV
1259 case BUTTON_RC_LEFT: 1240 case TREE_RC_PREV:
1241 case TREE_RC_PREV | BUTTON_REPEAT:
1260#endif 1242#endif
1261 if(filesindir) { 1243 if(filesindir) {
1262 if(dircursor) { 1244 if(dircursor) {
@@ -1295,8 +1277,9 @@ static bool dirbrowse(const char *root, const int *dirfilter)
1295 1277
1296 case TREE_NEXT: 1278 case TREE_NEXT:
1297 case TREE_NEXT | BUTTON_REPEAT: 1279 case TREE_NEXT | BUTTON_REPEAT:
1298#ifdef BUTTON_RC_RIGHT 1280#ifdef TREE_RC_NEXT
1299 case BUTTON_RC_RIGHT: 1281 case TREE_RC_NEXT:
1282 case TREE_RC_NEXT | BUTTON_REPEAT:
1300#endif 1283#endif
1301 if(filesindir) 1284 if(filesindir)
1302 { 1285 {
@@ -1340,11 +1323,11 @@ static bool dirbrowse(const char *root, const int *dirfilter)
1340 } 1323 }
1341 break; 1324 break;
1342 1325
1343#ifdef BUTTON_ON /* I bet the folks without ON-button want this to 1326#ifdef TREE_SHIFT /* I bet the folks without ON-button want this to
1344 work on a different button */ 1327 work on a different button */
1345 case BUTTON_ON: 1328 case TREE_SHIFT:
1346 if (handle_on(&dirstart, &dircursor, numentries, 1329 if (handle_shift(&dirstart, &dircursor, numentries,
1347 tree_max_on_screen, dirfilter)) 1330 tree_max_on_screen, dirfilter))
1348 { 1331 {
1349 /* start scroll */ 1332 /* start scroll */
1350 restore = true; 1333 restore = true;