/* * Copyright 2016 (c) Anna Schumaker. */ #ifndef OCARINA_CORE_PLAYLISTS_TYPE_H #define OCARINA_CORE_PLAYLISTS_TYPE_H #include #include #include #include struct playlist { const gchar *pl_name; /* This playlist's name. */ struct queue pl_queue; /* This playlist's queue of tracks. */ }; #define DEFINE_PLAYLIST(name) { .pl_name = name, } struct playlist_type { /* Called to get the queue for the playlist. */ struct queue *(*pl_get_queue)(const gchar *); /* Called to add a track to the playlist. */ bool (*pl_add_track)(const gchar *, struct track *); /* Called to remove a track from the playlist. */ bool (*pl_remove_track)(const gchar *, struct track *); /* Called to update a playlist. */ void (*pl_update)(const gchar *); }; #endif /* OCARINA_CORE_PLAYLISTS_TYPE_H */