ocarina/include/core/playlist.h

47 lines
1.4 KiB
C
Raw Normal View History

/*
* Copyright 2013 (c) Anna Schumaker.
*
* The playlist manager is in charge of the various playlists Ocarina
* knows about. This code also manages a special queue used by the GUI
* to display the tracks in each playlist.
*/
#ifndef OCARINA_CORE_PLAYLIST_H
#define OCARINA_CORE_PLAYLIST_H
#include <core/containers/index.h>
#include <core/queue.h>
enum playlist_t {
PL_FAVORITED, /* Songs that the user likes. */
PL_HIDDEN, /* Songs that the user has hidden. */
PL_UNPLAYED, /* Songs that have not been played yet. */
PL_MOST_PLAYED, /* Songs with an above average play count. */
PL_LEAST_PLAYED, /* Songs with a below average play count. */
};
/* Called to initialize the playlist manager. */
void playlist_init(struct queue_ops *);
/* Called to deinitialize the playlist manager. */
void playlist_deinit();
/* Called to add a track to a playlist. */
bool playlist_add(enum playlist_t, struct track *);
/* Called to remove a track from a playlist. */
bool playlist_remove(enum playlist_t, struct track *);
/* Called to check if a specific track is in the playlist. */
bool playlist_has(enum playlist_t, struct track *);
/* Called to fill the queue with a specific playlist. */
void playlist_select(enum playlist_t);
/* Called to access the playlist queue. */
struct queue *playlist_get_queue(enum playlist_t);
#endif /* OCARINA_CORE_PLAYLIST_H */