From 1dd0b7c2aa693ca961cd4a2846f7771b801a705e Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 21 Sep 2016 16:32:03 -0400 Subject: [PATCH] core/playlist: Move playlist tracks into the playlist struct Signed-off-by: Anna Schumaker --- core/playlists/generic.c | 15 +++++++-------- core/queue.c | 2 -- include/core/playlists/iterator.h | 4 ++-- include/core/playlists/playlist.h | 6 +++--- include/core/queue.h | 1 - 5 files changed, 12 insertions(+), 16 deletions(-) diff --git a/core/playlists/generic.c b/core/playlists/generic.c index 935df560..e96cec5e 100644 --- a/core/playlists/generic.c +++ b/core/playlists/generic.c @@ -40,6 +40,7 @@ void playlist_generic_set_callbacks(struct playlist_callbacks *cb) void playlist_generic_init(struct playlist *playlist, struct queue_ops *ops) { + g_queue_init(&playlist->pl_tracks); queue_init(&playlist->pl_queue, ops, playlist); playlist->pl_sort = NULL; playlist->pl_current = NULL; @@ -150,7 +151,7 @@ void playlist_generic_clear(struct playlist *playlist) return; n = playlist_size(playlist); - g_queue_clear(&playlist->pl_queue.q_tracks); + g_queue_clear(&playlist->pl_tracks); playlist->pl_length = 0; playlist->pl_current = NULL; if (callbacks) @@ -164,10 +165,10 @@ bool playlist_generic_add(struct playlist *playlist, struct track *track) playlist->pl_length += track->tr_length; if (playlist->pl_sort) { - g_queue_insert_sorted(&playlist->pl_queue.q_tracks, track, + g_queue_insert_sorted(&playlist->pl_tracks, track, __playlist_generic_less_than, playlist); } else - g_queue_push_tail(&playlist->pl_queue.q_tracks, track); + g_queue_push_tail(&playlist->pl_tracks, track); if (callbacks) callbacks->pl_cb_added(playlist, track); @@ -180,7 +181,7 @@ bool playlist_generic_add_front(struct playlist *playlist, struct track *track) return false; playlist->pl_length += track->tr_length; - g_queue_push_head(&playlist->pl_queue.q_tracks, track); + g_queue_push_head(&playlist->pl_tracks, track); if (callbacks) callbacks->pl_cb_added(playlist, track); return true; @@ -196,7 +197,7 @@ bool playlist_generic_remove(struct playlist *playlist, struct track *track) while (playlist_current_track(playlist) == track) playlist_current_previous(playlist); - count = g_queue_remove_all(&playlist->pl_queue.q_tracks, track); + count = g_queue_remove_all(&playlist->pl_tracks, track); playlist->pl_length -= (count * track->tr_length); if (callbacks) @@ -234,9 +235,7 @@ void playlist_generic_resort(struct playlist *playlist) if (!playlist || !playlist->pl_sort) return; - g_queue_sort(&playlist->pl_queue.q_tracks, __playlist_generic_less_than, - playlist); - + g_queue_sort(&playlist->pl_tracks, __playlist_generic_less_than, playlist); playlist_generic_update(playlist, NULL); } diff --git a/core/queue.c b/core/queue.c index 6f946d7a..fdf4a7f4 100644 --- a/core/queue.c +++ b/core/queue.c @@ -22,12 +22,10 @@ static inline void __queue_deinit(struct queue *queue) void queue_init(struct queue *queue, const struct queue_ops *ops, void *data) { queue->q_ops = ops; - g_queue_init(&queue->q_tracks); queue->q_private = __queue_init(queue, data); } void queue_deinit(struct queue *queue) { - g_queue_clear(&queue->q_tracks); __queue_deinit(queue); } diff --git a/include/core/playlists/iterator.h b/include/core/playlists/iterator.h index eff10c0b..98abe5aa 100644 --- a/include/core/playlists/iterator.h +++ b/include/core/playlists/iterator.h @@ -12,7 +12,7 @@ static inline playlist_iter playlist_iter_get(struct playlist *playlist, unsigned int n) { - return playlist ? g_queue_peek_nth_link(&playlist->pl_queue.q_tracks, n) : NULL; + return playlist ? g_queue_peek_nth_link(&playlist->pl_tracks, n) : NULL; } /* Called to advance the requested playlist iterator. */ @@ -31,7 +31,7 @@ static inline struct track *playlist_iter_track(playlist_iter iter) static inline int playlist_iter_index(struct playlist *playlist, playlist_iter iter) { - return (playlist && iter) ? g_queue_link_index(&playlist->pl_queue.q_tracks, iter) : -1; + return (playlist && iter) ? g_queue_link_index(&playlist->pl_tracks, iter) : -1; } /* Called to iterate over the entire playlist. */ diff --git a/include/core/playlists/playlist.h b/include/core/playlists/playlist.h index 771e6de9..1f326f93 100644 --- a/include/core/playlists/playlist.h +++ b/include/core/playlists/playlist.h @@ -48,6 +48,7 @@ struct playlist { gchar *pl_name; /* This playlist's name. */ unsigned int pl_id; /* This playlist's identifier. */ + GQueue pl_tracks; /* This playlist's queue of tracks. */ unsigned int pl_length; /* This playlist's length, in seconds. */ bool pl_random; /* This playlist's random setting. */ playlist_iter pl_current; /* This playlist's current track. */ @@ -89,14 +90,13 @@ struct playlist_type { /* Called to check if the playlist contains a specific track. */ static inline bool playlist_has(struct playlist *playlist, struct track *track) { - return playlist ? g_queue_find(&playlist->pl_queue.q_tracks, track) != NULL : - false; + return playlist ? g_queue_find(&playlist->pl_tracks, track) != NULL : false; } /* Called to find the size of a playlist. */ static inline unsigned int playlist_size(struct playlist *playlist) { - return playlist ? g_queue_get_length(&playlist->pl_queue.q_tracks) : 0; + return playlist ? g_queue_get_length(&playlist->pl_tracks) : 0; } /* Called to clear the sort order of the playlist. */ diff --git a/include/core/queue.h b/include/core/queue.h index d32d6aae..8c1c36ef 100644 --- a/include/core/queue.h +++ b/include/core/queue.h @@ -24,7 +24,6 @@ struct queue_ops { struct queue { - GQueue q_tracks; /* The queue's list of tracks. */ void *q_private; /* The queue's private data. */ const struct queue_ops *q_ops; /* The queue's operations vector. */