diff --git a/apps/tagtree.c b/apps/tagtree.c index 0565b62981..0727b8ea45 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c @@ -997,8 +997,10 @@ bool insert_all_playlist(struct tree_context *c, int position, bool queue) } if (playlist_insert_track(NULL, buf, position, queue, false) < 0) + { + logf("playlist_insert_track failed"); break; - + } yield(); } playlist_sync(NULL); @@ -1065,7 +1067,8 @@ bool tagtree_insert_selection_playlist(int position, bool queue) else { logf("insert_all_playlist"); - insert_all_playlist(tc, position, queue); + if (!insert_all_playlist(tc, position, queue)) + gui_syncsplash(HZ*2, true, str(LANG_FAILED)); } /* Finally return the dirlevel to its original value. */ diff --git a/firmware/common/dircache.c b/firmware/common/dircache.c index d2c77a2e25..d0fdba06af 100644 --- a/firmware/common/dircache.c +++ b/firmware/common/dircache.c @@ -633,6 +633,7 @@ int dircache_build(int last_size) if (dircache_size > 0) { thread_enabled = true; + dircache_initializing = true; queue_post(&dircache_queue, DIRCACHE_BUILD, 0); return 2; } @@ -680,6 +681,7 @@ void dircache_init(void) int i; dircache_initialized = false; + dircache_initializing = false; memset(opendirs, 0, sizeof(opendirs)); for (i = 0; i < MAX_OPEN_DIRS; i++) @@ -769,7 +771,9 @@ void dircache_disable(void) } } } while (cache_in_use) ; + logf("Cache released"); + entry_count = 0; } /**