summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/tagcache.c7
-rw-r--r--apps/tagcache.h1
-rw-r--r--apps/tree.c8
3 files changed, 16 insertions, 0 deletions
diff --git a/apps/tagcache.c b/apps/tagcache.c
index 4812198167..4bcf25bad2 100644
--- a/apps/tagcache.c
+++ b/apps/tagcache.c
@@ -3295,6 +3295,13 @@ static void load_ramcache(void)
cpu_boost(false);
}
+
+void tagcache_unload_ramcache(void)
+{
+ stat.ramcache = false;
+ /* Just to make sure there is no statefile present. */
+ remove(TAGCACHE_STATEFILE);
+}
#endif
static bool check_all_headers(void)
diff --git a/apps/tagcache.h b/apps/tagcache.h
index d5ce772904..b27d804792 100644
--- a/apps/tagcache.h
+++ b/apps/tagcache.h
@@ -155,6 +155,7 @@ bool tagcache_prepare_shutdown(void);
#ifdef HAVE_TC_RAMCACHE
bool tagcache_is_ramcache(void);
bool tagcache_fill_tags(struct mp3entry *id3, const char *filename);
+void tagcache_unload_ramcache(void);
#endif
void tagcache_init(void);
bool tagcache_is_initialized(void);
diff --git a/apps/tree.c b/apps/tree.c
index 7b553a5960..1dbe9223b9 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -1365,6 +1365,10 @@ void tree_flush(void)
tagcache_stop_scan();
playlist_shutdown();
+#ifdef HAVE_TC_RAMCACHE
+ tagcache_unload_ramcache();
+#endif
+
#ifdef HAVE_DIRCACHE
if (global_settings.dircache)
{
@@ -1387,6 +1391,10 @@ void tree_flush(void)
void tree_restore(void)
{
+#ifdef HAVE_EEPROM
+ firmware_settings.disk_clean = false;
+#endif
+
#ifdef HAVE_DIRCACHE
remove(DIRCACHE_FILE);
if (global_settings.dircache)