/* * 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 #include 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 */