summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/filetree.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/apps/filetree.c b/apps/filetree.c
index 6a06fcd5ad..2f4c21dcfe 100644
--- a/apps/filetree.c
+++ b/apps/filetree.c
@@ -82,7 +82,12 @@ int ft_build_playlist(struct tree_context* c, int start_index)
82 82
83 tree_lock_cache(c); 83 tree_lock_cache(c);
84 struct entry *entries = tree_get_entries(c); 84 struct entry *entries = tree_get_entries(c);
85 85 bool exceeds_pl = false;
86 if (c->filesindir > playlist->max_playlist_size)
87 {
88 exceeds_pl = true;
89 start_index = 0;
90 }
86 struct playlist_insert_context pl_context; 91 struct playlist_insert_context pl_context;
87 92
88 res = playlist_insert_context_create(playlist, &pl_context, 93 res = playlist_insert_context_create(playlist, &pl_context,
@@ -92,6 +97,9 @@ int ft_build_playlist(struct tree_context* c, int start_index)
92 cpu_boost(true); 97 cpu_boost(true);
93 for(i = 0;i < c->filesindir;i++) 98 for(i = 0;i < c->filesindir;i++)
94 { 99 {
100 int item = i;
101 if (exceeds_pl)
102 item = (i + start) % c->filesindir;
95#if 0 /*only needed if displaying progress */ 103#if 0 /*only needed if displaying progress */
96 /* user abort */ 104 /* user abort */
97 if (action_userabort(TIMEOUT_NOBLOCK)) 105 if (action_userabort(TIMEOUT_NOBLOCK))
@@ -99,13 +107,13 @@ int ft_build_playlist(struct tree_context* c, int start_index)
99 break; 107 break;
100 } 108 }
101#endif 109#endif
102 if((entries[i].attr & FILE_ATTR_MASK) == FILE_ATTR_AUDIO) 110 if((entries[item].attr & FILE_ATTR_MASK) == FILE_ATTR_AUDIO)
103 { 111 {
104 res = playlist_insert_context_add(&pl_context, entries[i].name); 112 res = playlist_insert_context_add(&pl_context, entries[item].name);
105 if (res < 0) 113 if (res < 0)
106 break; 114 break;
107 } 115 }
108 else 116 else if (!exceeds_pl)
109 { 117 {
110 /* Adjust the start index when se skip non-MP3 entries */ 118 /* Adjust the start index when se skip non-MP3 entries */
111 if(i < start) 119 if(i < start)