core/playlist: Add playlist_size() function

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2016-04-28 10:10:11 -04:00 committed by Anna Schumaker
parent 00dd72d46e
commit 2c18f9e715
3 changed files with 19 additions and 16 deletions

View File

@ -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);

View File

@ -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 *);

View File

@ -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()