58 lines
1.2 KiB
C
58 lines
1.2 KiB
C
/*
|
|
* Copyright 2013 (c) Anna Schumaker.
|
|
*/
|
|
#include <core/playlist.h>
|
|
#include <core/playlists/system.h>
|
|
|
|
static enum playlist_t playlist_cur;
|
|
static const gchar *playlist_names[5] =
|
|
{ "Favorites", "Hidden", "Unplayed", "Most Played", "Least Played" };
|
|
|
|
|
|
void playlist_init(struct queue_ops *ops)
|
|
{
|
|
pl_system_init(ops);
|
|
}
|
|
|
|
void playlist_deinit()
|
|
{
|
|
pl_system_deinit();
|
|
}
|
|
|
|
bool playlist_add(enum playlist_t plist, struct track *track)
|
|
{
|
|
if (!track)
|
|
return false;
|
|
return pl_system.pl_add_track(playlist_names[plist], track);
|
|
}
|
|
|
|
bool playlist_remove(enum playlist_t plist, struct track *track)
|
|
{
|
|
if (!track)
|
|
return false;
|
|
return pl_system.pl_remove_track(playlist_names[plist], track);
|
|
}
|
|
|
|
void playlist_update(enum playlist_t plist)
|
|
{
|
|
pl_system.pl_update(playlist_names[plist]);
|
|
}
|
|
|
|
bool playlist_has(enum playlist_t plist, struct track *track)
|
|
{
|
|
struct queue *queue = pl_system.pl_get_queue(playlist_names[plist]);
|
|
if (!track || !queue)
|
|
return false;
|
|
return queue_has(queue, track);
|
|
}
|
|
|
|
void playlist_select(enum playlist_t plist)
|
|
{
|
|
playlist_cur = plist;
|
|
}
|
|
|
|
struct queue *playlist_get_queue(enum playlist_t plist)
|
|
{
|
|
return pl_system.pl_get_queue(playlist_names[plist]);
|
|
}
|