diff --git a/core/playlists/system.c b/core/playlists/system.c index 8a3a54eb..39255345 100644 --- a/core/playlists/system.c +++ b/core/playlists/system.c @@ -11,7 +11,6 @@ static void pl_system_update(const gchar *); static inline struct queue *__sys_pl_queue(enum sys_playlist_t); static void __sys_pl_save(); static bool __sys_pl_load(); -static void __sys_pl_save_new(); static struct file sys_file = FILE_INIT("playlist.db", 0, 0); static struct file sys_deck_f = FILE_INIT("deck", 1, 1); @@ -75,7 +74,6 @@ static bool sys_pl_favorites_add(struct playlist *playlist, struct track *track) { bool ret = playlist_generic_add_track(playlist, track); __sys_pl_save(); - __sys_pl_save_new(); return ret; } @@ -83,7 +81,6 @@ static bool sys_pl_favorites_remove(struct playlist *playlist, struct track *tra { bool ret = playlist_generic_remove_track(playlist, track); __sys_pl_save(); - __sys_pl_save_new(); return ret; } @@ -91,7 +88,6 @@ static void sys_pl_favorites_clear(struct playlist *playlist) { playlist_generic_clear(playlist); __sys_pl_save(); - __sys_pl_save_new(); } static struct sys_playlist sys_favorites = { @@ -120,7 +116,6 @@ static bool sys_pl_hidden_add(struct playlist *playlist, struct track *track) pl_system_remove_track("Most Played", track); pl_system_remove_track("Least Played", track); __sys_pl_save(); - __sys_pl_save_new(); return ret; } @@ -139,7 +134,6 @@ static bool sys_pl_hidden_remove(struct playlist *playlist, struct track *track) { bool ret = sys_pl_hidden_on_remove(playlist, track); __sys_pl_save(); - __sys_pl_save_new(); return ret; } @@ -152,7 +146,6 @@ static void sys_pl_hidden_clear(struct playlist *playlist) sys_pl_hidden_on_remove(playlist, track); } __sys_pl_save(); - __sys_pl_save_new(); } static struct sys_playlist sys_hidden = { @@ -173,22 +166,6 @@ static struct sys_playlist sys_hidden = { /* * Queued tracks playlist operations. */ -static void sys_pl_queued_save(struct playlist *playlist) -{ - struct queue *queue = &playlist->pl_queue; - - if (file_open(&sys_deck_f, OPEN_WRITE)) { - if (queue_size(queue) == 0) - file_writef(&sys_deck_f, "%zu\n", 0); - else { - file_writef(&sys_deck_f, "%zu\n%u ", 1, queue->q_flags); - queue_save_tracks(queue, &sys_deck_f); - } - - file_close(&sys_deck_f); - } -} - static bool sys_pl_queued_load() { struct playlist *playlist = &sys_playlists[SYS_PL_QUEUED]->spl_playlist; @@ -208,6 +185,7 @@ static bool sys_pl_queued_load() } file_close(&sys_deck_f); + file_remove(&sys_deck_f); return true; } @@ -220,39 +198,34 @@ static void sys_pl_queued_init(struct playlist *playlist, static bool sys_pl_queued_add(struct playlist *playlist, struct track *track) { bool ret = playlist_generic_add_track(playlist, track); - sys_pl_queued_save(playlist); - __sys_pl_save_new(); + __sys_pl_save(); return ret; } static bool sys_pl_queued_remove(struct playlist *playlist, struct track *track) { bool ret = playlist_generic_remove_track(playlist, track); - sys_pl_queued_save(playlist); - __sys_pl_save_new(); + __sys_pl_save(); return ret; } static void sys_pl_queued_clear(struct playlist *playlist) { playlist_generic_clear(playlist); - sys_pl_queued_save(playlist); - __sys_pl_save_new(); + __sys_pl_save(); } static void sys_pl_queued_set_flag(struct playlist *playlist, enum queue_flags flag, bool enabled) { playlist_generic_set_flag(playlist, flag, enabled); - sys_pl_queued_save(playlist); - __sys_pl_save_new(); + __sys_pl_save(); } static struct track *sys_pl_queued_next(struct playlist *playlist) { struct track *track = playlist_generic_next(playlist); - sys_pl_queued_save(playlist); - __sys_pl_save_new(); + __sys_pl_save(); return track; } @@ -274,14 +247,6 @@ static struct sys_playlist sys_queued = { /* * Collection playlist operations. */ -static void sys_pl_collection_save(struct playlist *playlist) -{ - if (file_open(&sys_collection_f, OPEN_WRITE)) { - queue_save_flags(&playlist->pl_queue, &sys_collection_f, false); - file_close(&sys_collection_f); - } -} - static bool sys_pl_collection_load() { struct playlist *playlist = &sys_playlists[SYS_PL_COLLECTION]->spl_playlist; @@ -291,6 +256,7 @@ static bool sys_pl_collection_load() queue_unset_flag(&playlist->pl_queue, Q_SAVE_FLAGS); queue_unset_flag(&playlist->pl_queue, Q_SAVE_SORT); file_close(&sys_collection_f); + file_remove(&sys_collection_f); } return true; @@ -320,16 +286,14 @@ static void sys_pl_collection_set_flag(struct playlist *playlist, enum queue_flags flag, bool enabled) { playlist_generic_set_flag(playlist, flag, enabled); - sys_pl_collection_save(playlist); - __sys_pl_save_new(); + __sys_pl_save(); } static void sys_pl_collection_sort(struct playlist *playlist, enum compare_t sort, bool reset) { playlist_generic_sort(playlist, sort, reset); - sys_pl_collection_save(playlist); - __sys_pl_save_new(); + __sys_pl_save(); } static struct sys_playlist sys_collection = { @@ -518,7 +482,7 @@ static inline struct queue *__sys_pl_queue(enum sys_playlist_t plist) return &sys_playlists[plist]->spl_playlist.pl_queue; } -static void __sys_pl_save_new() +static void __sys_pl_save() { struct sys_playlist *sys_pl; unsigned int i; @@ -537,7 +501,7 @@ static void __sys_pl_save_new() static bool __sys_pl_update_save() { - __sys_pl_save_new(); + __sys_pl_save(); return true; } @@ -568,19 +532,6 @@ static bool __sys_pl_load_new() return true; } -static void __sys_pl_save() -{ - if (!file_open(&sys_file, OPEN_WRITE)) - return; - - file_writef(&sys_file, "%u\n 1 %s\n", 2, "Favorites"); - queue_save_tracks(__sys_pl_queue(SYS_PL_FAVORITES), &sys_file); - file_writef(&sys_file, "1 %s\n", "Banned"); - queue_save_tracks(__sys_pl_queue(SYS_PL_HIDDEN), &sys_file); - - file_close(&sys_file); -} - static bool __sys_pl_load() { struct sys_playlist *plist; @@ -601,6 +552,7 @@ static bool __sys_pl_load() } file_close(&sys_file); + file_remove(&sys_file); return true; } @@ -673,7 +625,7 @@ static void pl_system_set_flag(const gchar *name, enum queue_flags flag, struct sys_playlist *sys_pl = __sys_pl_lookup(name); if (sys_pl) { sys_pl->spl_set_flag(&sys_pl->spl_playlist, flag, enabled); - __sys_pl_save_new(); + __sys_pl_save(); } } @@ -682,7 +634,7 @@ static void pl_system_sort(const gchar *name, enum compare_t sort, bool reset) struct sys_playlist *sys_pl = __sys_pl_lookup(name); if (sys_pl) { sys_pl->spl_sort(&sys_pl->spl_playlist, sort, reset); - __sys_pl_save_new(); + __sys_pl_save(); } } @@ -692,7 +644,7 @@ static struct track *pl_system_next(const gchar *name) struct track *track = NULL;; if (sys_pl) { track = sys_pl->spl_next(&sys_pl->spl_playlist); - __sys_pl_save_new(); + __sys_pl_save(); } return track; }