core/playlists/system: Trigger an update during playlist init
This is a bit cleaner, and helps to simplify the system playlist initialization process. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
f4b12c5a83
commit
81aea3017e
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
static bool pl_system_add_track(const gchar *, struct track *);
|
static bool pl_system_add_track(const gchar *, struct track *);
|
||||||
static bool pl_system_remove_track(const gchar *, struct track *);
|
static bool pl_system_remove_track(const gchar *, struct track *);
|
||||||
|
static void pl_system_update(const gchar *);
|
||||||
static inline struct queue *__sys_pl_queue(enum sys_playlist_t);
|
static inline struct queue *__sys_pl_queue(enum sys_playlist_t);
|
||||||
static void __sys_pl_save();
|
static void __sys_pl_save();
|
||||||
|
|
||||||
|
@ -24,6 +25,13 @@ static void sys_pl_generic_init(struct playlist *playlist, unsigned int flags,
|
||||||
playlist_generic_init(playlist, Q_REPEAT | Q_ADD_FRONT, ops);
|
playlist_generic_init(playlist, Q_REPEAT | Q_ADD_FRONT, ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void sys_pl_update_init(struct playlist *playlist, unsigned int flags,
|
||||||
|
struct queue_ops *ops)
|
||||||
|
{
|
||||||
|
sys_pl_generic_init(playlist, flags, ops);
|
||||||
|
pl_system_update(playlist->pl_name);
|
||||||
|
}
|
||||||
|
|
||||||
static bool sys_pl_generic_add(struct playlist *playlist, struct track *track)
|
static bool sys_pl_generic_add(struct playlist *playlist, struct track *track)
|
||||||
{
|
{
|
||||||
if (queue_has(__sys_pl_queue(SYS_PL_HIDDEN), track))
|
if (queue_has(__sys_pl_queue(SYS_PL_HIDDEN), track))
|
||||||
|
@ -146,7 +154,7 @@ static void sys_pl_collection_sort(struct playlist *playlist,
|
||||||
|
|
||||||
static struct sys_playlist sys_collection = {
|
static struct sys_playlist sys_collection = {
|
||||||
.spl_playlist = DEFINE_PLAYLIST(PL_SYSTEM, "Collection"),
|
.spl_playlist = DEFINE_PLAYLIST(PL_SYSTEM, "Collection"),
|
||||||
.spl_init = sys_pl_generic_init,
|
.spl_init = sys_pl_update_init,
|
||||||
.spl_add = sys_pl_collection_add,
|
.spl_add = sys_pl_collection_add,
|
||||||
.spl_remove = playlist_generic_remove_track,
|
.spl_remove = playlist_generic_remove_track,
|
||||||
.spl_update = sys_pl_collection_update,
|
.spl_update = sys_pl_collection_update,
|
||||||
|
@ -203,7 +211,7 @@ static bool sys_pl_unplayed_update(struct playlist *playlist,
|
||||||
|
|
||||||
static struct sys_playlist sys_unplayed = {
|
static struct sys_playlist sys_unplayed = {
|
||||||
.spl_playlist = DEFINE_PLAYLIST(PL_SYSTEM, "Unplayed"),
|
.spl_playlist = DEFINE_PLAYLIST(PL_SYSTEM, "Unplayed"),
|
||||||
.spl_init = sys_pl_generic_init,
|
.spl_init = sys_pl_update_init,
|
||||||
.spl_add = sys_pl_unplayed_add,
|
.spl_add = sys_pl_unplayed_add,
|
||||||
.spl_remove = playlist_generic_remove_track,
|
.spl_remove = playlist_generic_remove_track,
|
||||||
.spl_update = sys_pl_unplayed_update,
|
.spl_update = sys_pl_unplayed_update,
|
||||||
|
@ -234,7 +242,7 @@ static bool sys_pl_most_played_update(struct playlist *playlist,
|
||||||
|
|
||||||
static struct sys_playlist sys_most_played = {
|
static struct sys_playlist sys_most_played = {
|
||||||
.spl_playlist = DEFINE_PLAYLIST(PL_SYSTEM, "Most Played"),
|
.spl_playlist = DEFINE_PLAYLIST(PL_SYSTEM, "Most Played"),
|
||||||
.spl_init = sys_pl_generic_init,
|
.spl_init = sys_pl_update_init,
|
||||||
.spl_add = sys_pl_most_played_add,
|
.spl_add = sys_pl_most_played_add,
|
||||||
.spl_remove = playlist_generic_remove_track,
|
.spl_remove = playlist_generic_remove_track,
|
||||||
.spl_update = sys_pl_most_played_update,
|
.spl_update = sys_pl_most_played_update,
|
||||||
|
@ -265,7 +273,7 @@ static bool sys_pl_least_played_update(struct playlist *playlist,
|
||||||
|
|
||||||
static struct sys_playlist sys_least_played = {
|
static struct sys_playlist sys_least_played = {
|
||||||
.spl_playlist = DEFINE_PLAYLIST(PL_SYSTEM, "Least Played"),
|
.spl_playlist = DEFINE_PLAYLIST(PL_SYSTEM, "Least Played"),
|
||||||
.spl_init = sys_pl_generic_init,
|
.spl_init = sys_pl_update_init,
|
||||||
.spl_add = sys_pl_least_played_add,
|
.spl_add = sys_pl_least_played_add,
|
||||||
.spl_remove = playlist_generic_remove_track,
|
.spl_remove = playlist_generic_remove_track,
|
||||||
.spl_update = sys_pl_least_played_update,
|
.spl_update = sys_pl_least_played_update,
|
||||||
|
@ -417,16 +425,11 @@ void pl_system_init(struct queue_ops *ops)
|
||||||
struct sys_playlist *sys_pl;
|
struct sys_playlist *sys_pl;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
idle_schedule(IDLE_SYNC, __sys_pl_load, NULL);
|
||||||
for (i = 0; i < SYS_PL_NUM_PLAYLISTS; i++) {
|
for (i = 0; i < SYS_PL_NUM_PLAYLISTS; i++) {
|
||||||
sys_pl = sys_playlists[i];
|
sys_pl = sys_playlists[i];
|
||||||
sys_pl->spl_init(&sys_pl->spl_playlist, 0, ops);
|
sys_pl->spl_init(&sys_pl->spl_playlist, 0, ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
idle_schedule(IDLE_SYNC, __sys_pl_load, NULL);
|
|
||||||
pl_system_update("Collection");
|
|
||||||
pl_system_update("Unplayed");
|
|
||||||
pl_system_update("Most Played");
|
|
||||||
pl_system_update("Least Played");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void pl_system_deinit()
|
void pl_system_deinit()
|
||||||
|
|
Loading…
Reference in New Issue