summaryrefslogtreecommitdiff
path: root/apps/tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/tree.c')
-rw-r--r--apps/tree.c40
1 files changed, 21 insertions, 19 deletions
diff --git a/apps/tree.c b/apps/tree.c
index d0f4ab9d68..0809ecbfae 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -365,7 +365,7 @@ static int showdir(void)
365 int attr = 0; 365 int attr = 0;
366 366
367 if (id3db) { 367 if (id3db) {
368 name = ((char**)tc.dircache)[i * 2]; 368 name = ((char**)tc.dircache)[i * tc.dentry_size];
369 icon = db_get_icon(&tc); 369 icon = db_get_icon(&tc);
370 } 370 }
371 else { 371 else {
@@ -717,23 +717,23 @@ static bool dirbrowse(void)
717 break; 717 break;
718 718
719 if (id3db) 719 if (id3db)
720 db_enter(&tc); 720 i = db_enter(&tc);
721 else { 721 else
722 switch (ft_enter(&tc)) 722 i = ft_enter(&tc);
723 { 723
724 case 1: reload_dir = true; break; 724 switch (i)
725 case 2: reload_root = true; break; 725 {
726 case 3: start_wps = true; break; 726 case 1: reload_dir = true; break;
727 case 4: exit_func = true; break; 727 case 2: reload_root = true; break;
728 default: break; 728 case 3: start_wps = true; break;
729 } 729 case 4: exit_func = true; break;
730 default: break;
731 }
730 732
731#ifdef HAVE_LCD_BITMAP 733#ifdef HAVE_LCD_BITMAP
732 /* maybe we have a new font */ 734 /* maybe we have a new font */
733 tree_max_on_screen = recalc_screen_height(); 735 tree_max_on_screen = recalc_screen_height();
734#endif 736#endif
735 }
736
737 /* make sure cursor is on screen */ 737 /* make sure cursor is on screen */
738 while ( tc.dircursor > tree_max_on_screen ) 738 while ( tc.dircursor > tree_max_on_screen )
739 { 739 {
@@ -1013,6 +1013,7 @@ static bool dirbrowse(void)
1013#endif 1013#endif
1014 { 1014 {
1015 int onplay_result; 1015 int onplay_result;
1016 int attr = 0;
1016 1017
1017 if(!numentries) 1018 if(!numentries)
1018 onplay_result = onplay(NULL, 0); 1019 onplay_result = onplay(NULL, 0);
@@ -1023,8 +1024,9 @@ static bool dirbrowse(void)
1023 else 1024 else
1024 snprintf(buf, sizeof buf, "/%s", 1025 snprintf(buf, sizeof buf, "/%s",
1025 dircache[tc.dircursor+tc.dirstart].name); 1026 dircache[tc.dircursor+tc.dirstart].name);
1026 onplay_result = onplay(buf, 1027 if (!id3db)
1027 dircache[tc.dircursor+tc.dirstart].attr); 1028 attr = dircache[tc.dircursor+tc.dirstart].attr;
1029 onplay_result = onplay(buf, attr);
1028 } 1030 }
1029 1031
1030 switch (onplay_result) 1032 switch (onplay_result)
@@ -1166,7 +1168,7 @@ static bool dirbrowse(void)
1166 int attr = 0; 1168 int attr = 0;
1167 1169
1168 if (id3db) 1170 if (id3db)
1169 name = ((char**)tc.dircache)[lasti * 2]; 1171 name = ((char**)tc.dircache)[lasti * tc.dentry_size];
1170 else { 1172 else {
1171 struct entry* dc = tc.dircache; 1173 struct entry* dc = tc.dircache;
1172 struct entry* e = &dc[lasti]; 1174 struct entry* e = &dc[lasti];
@@ -1186,7 +1188,7 @@ static bool dirbrowse(void)
1186 thumbnail_time = -1; /* cancel whatever we were about to say */ 1188 thumbnail_time = -1; /* cancel whatever we were about to say */
1187 1189
1188 if (id3db) 1190 if (id3db)
1189 name = ((char**)tc.dircache)[lasti * 2]; 1191 name = ((char**)tc.dircache)[lasti * tc.dentry_size];
1190 else { 1192 else {
1191 struct entry* dc = tc.dircache; 1193 struct entry* dc = tc.dircache;
1192 struct entry* e = &dc[lasti]; 1194 struct entry* e = &dc[lasti];