diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/tree.c | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/apps/tree.c b/apps/tree.c index ca7b83ef3f..7aa0f3208b 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -1008,6 +1008,7 @@ static bool dirbrowse(void) | |||
1008 | } | 1008 | } |
1009 | 1009 | ||
1010 | static int plsize = 0; | 1010 | static int plsize = 0; |
1011 | static long pltick; | ||
1011 | static bool add_dir(char* dirname, int len, int fd) | 1012 | static bool add_dir(char* dirname, int len, int fd) |
1012 | { | 1013 | { |
1013 | bool abort = false; | 1014 | bool abort = false; |
@@ -1056,10 +1057,9 @@ static bool add_dir(char* dirname, int len, int fd) | |||
1056 | cp++; | 1057 | cp++; |
1057 | 1058 | ||
1058 | /* add all supported audio files to playlists */ | 1059 | /* add all supported audio files to playlists */ |
1059 | for (i=0; i < sizeof(filetypes); i++) { | 1060 | for (i=0; i < sizeof(filetypes)/sizeof(struct filetype); i++) { |
1060 | if (filetypes[i].tree_attr == TREE_ATTR_MPA) { | 1061 | if (filetypes[i].tree_attr == TREE_ATTR_MPA) { |
1061 | if (!strcasecmp(cp, filetypes[i].extension)) | 1062 | if (!strcasecmp(cp, filetypes[i].extension)) { |
1062 | { | ||
1063 | char buf[8]; | 1063 | char buf[8]; |
1064 | int i; | 1064 | int i; |
1065 | write(fd, dirname, strlen(dirname)); | 1065 | write(fd, dirname, strlen(dirname)); |
@@ -1068,30 +1068,33 @@ static bool add_dir(char* dirname, int len, int fd) | |||
1068 | write(fd, "\n", 1); | 1068 | write(fd, "\n", 1); |
1069 | 1069 | ||
1070 | plsize++; | 1070 | plsize++; |
1071 | snprintf(buf, sizeof buf, "%d", plsize); | 1071 | if(TIME_AFTER(current_tick, pltick+HZ/4)) { |
1072 | pltick = current_tick; | ||
1073 | |||
1074 | snprintf(buf, sizeof buf, "%d", plsize); | ||
1072 | #ifdef HAVE_LCD_BITMAP | 1075 | #ifdef HAVE_LCD_BITMAP |
1073 | FOR_NB_SCREENS(i) | 1076 | FOR_NB_SCREENS(i) |
1074 | { | 1077 | { |
1075 | gui_textarea_clear(&screens[i]); | 1078 | screens[i].puts(0, 4, (unsigned char *)buf); |
1076 | screens[i].puts(0, 4, (unsigned char *)buf); | 1079 | gui_textarea_update(&screens[i]); |
1077 | } | 1080 | } |
1078 | #else | 1081 | #else |
1079 | x = 10; | 1082 | x = 10; |
1080 | if (plsize > 999) | 1083 | if (plsize > 999) |
1081 | x=7; | 1084 | x=7; |
1082 | else { | ||
1083 | if (plsize > 99) | ||
1084 | x=8; | ||
1085 | else { | 1085 | else { |
1086 | if (plsize > 9) | 1086 | if (plsize > 99) |
1087 | x=9; | 1087 | x=8; |
1088 | else { | ||
1089 | if (plsize > 9) | ||
1090 | x=9; | ||
1091 | } | ||
1092 | } | ||
1093 | FOR_NB_SCREENS(i) { | ||
1094 | screens[i].puts(x,0,buf); | ||
1088 | } | 1095 | } |
1089 | } | ||
1090 | FOR_NB_SCREENS(i) { | ||
1091 | screens[i].puts(x,0,buf); | ||
1092 | gui_textarea_update(&screens[i]); | ||
1093 | } | ||
1094 | #endif | 1096 | #endif |
1097 | } | ||
1095 | break; | 1098 | break; |
1096 | } | 1099 | } |
1097 | } | 1100 | } |
@@ -1110,6 +1113,8 @@ bool create_playlist(void) | |||
1110 | int i; | 1113 | int i; |
1111 | char filename[MAX_PATH]; | 1114 | char filename[MAX_PATH]; |
1112 | 1115 | ||
1116 | pltick = current_tick; | ||
1117 | |||
1113 | snprintf(filename, sizeof filename, "%s.m3u", | 1118 | snprintf(filename, sizeof filename, "%s.m3u", |
1114 | tc.currdir[1] ? tc.currdir : "/root"); | 1119 | tc.currdir[1] ? tc.currdir : "/root"); |
1115 | FOR_NB_SCREENS(i) | 1120 | FOR_NB_SCREENS(i) |