From 2c18f9e715d2c6d9c8094ff4136724bd0b496391 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Thu, 28 Apr 2016 10:10:11 -0400 Subject: [PATCH] core/playlist: Add playlist_size() function Signed-off-by: Anna Schumaker --- core/playlist.c | 6 ++++++ include/core/playlist.h | 3 +++ tests/core/playlist.c | 26 ++++++++++---------------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/core/playlist.c b/core/playlist.c index 7e0f1d83..a20152c8 100644 --- a/core/playlist.c +++ b/core/playlist.c @@ -42,6 +42,12 @@ bool playlist_has(const gchar *name, struct track *track) return queue_has(queue, track); } +unsigned int playlist_size(const gchar *name) +{ + struct queue *queue = pl_system.pl_get_queue(name); + return queue ? queue_size(queue) : 0; +} + struct queue *playlist_get_queue(const gchar *name) { return pl_system.pl_get_queue(name); diff --git a/include/core/playlist.h b/include/core/playlist.h index b168d065..7313f1b6 100644 --- a/include/core/playlist.h +++ b/include/core/playlist.h @@ -32,6 +32,9 @@ void playlist_update(const gchar *); /* Called to check if a specific track is in the playlist. */ bool playlist_has(const gchar *, struct track *); +/* Called to find the number of tracks in the playlist. */ +unsigned int playlist_size(const gchar *); + /* Called to access the playlist queue. */ struct queue *playlist_get_queue(const gchar *); diff --git a/tests/core/playlist.c b/tests/core/playlist.c index 6ab25ca1..e093d5fc 100644 --- a/tests/core/playlist.c +++ b/tests/core/playlist.c @@ -59,7 +59,6 @@ static void test_init() static void test_add() { - struct queue *q = playlist_get_queue("Favorites"); struct track *track = track_get(0); test_equal(playlist_add("Favorites", NULL), (bool)false); @@ -68,47 +67,42 @@ static void test_add() test_equal(playlist_has("Favorites", track), (bool)false); test_equal(playlist_add("Favorites", track), (bool)true); test_equal(playlist_has("Favorites", track), (bool)true); - q = playlist_get_queue("Favorites"); - test_equal(queue_size(q), 1); + test_equal(playlist_size("Favorites"), 1); test_equal(playlist_add("Favorites", track), (bool)false); - test_equal(queue_size(q), 1); + test_equal(playlist_size("Favorites"), 1); test_equal(playlist_add("Favorites", track_get(1)), (bool)true); - test_equal(queue_size(q), 2); + test_equal(playlist_size("Favorites"), 2); track = track_get(2); - q = playlist_get_queue("Hidden"); test_equal(playlist_has("Hidden", track), (bool)false); test_equal(playlist_add("Hidden", track), (bool)true); test_equal(playlist_has("Hidden", track), (bool)true); - q = playlist_get_queue("Hidden"); - test_equal(queue_size(q), 1); + test_equal(playlist_size("Hidden"), 1); } static void test_remove() { - struct queue *q = playlist_get_queue("Favorites"); struct track *track = track_get(0); /* The important thing here is that we don't crash */ test_equal(playlist_remove("Favorites", NULL), (bool)false); - test_equal(queue_size(q), 2); + test_equal(playlist_size("Favorites"), 2); test_equal(playlist_has("Favorites", track), (bool)true); test_equal(playlist_remove("Favorites", track), (bool)true); test_equal(playlist_has("Favorites", track), (bool)false); - test_equal(queue_size(q), 1); + test_equal(playlist_size("Favorites"), 1); test_equal(playlist_remove("Favorites", track), (bool)false); - test_equal(queue_size(q), 1); + test_equal(playlist_size("Favorites"), 1); test_equal(playlist_remove("Favorites", track_get(1)), (bool)true); - test_equal(queue_size(q), 0); + test_equal(playlist_size("Favorites"), 0); - q = playlist_get_queue("Hidden"); track = track_get(2); - test_equal(queue_size(q), 1); + test_equal(playlist_size("Hidden"), 1); test_equal(playlist_has("Hidden", track), (bool)true); test_equal(playlist_remove("Hidden", track), (bool)true); test_equal(playlist_has("Hidden", track), (bool)false); - test_equal(queue_size(q), 0); + test_equal(playlist_size("Hidden"), 0); } static void test_deinit()