37 lines
868 B
C
37 lines
868 B
C
/*
|
|
* Copyright 2016 (c) Anna Schumaker.
|
|
*/
|
|
#ifndef OCARINA_CORE_PLAYLISTS_TYPE_H
|
|
#define OCARINA_CORE_PLAYLISTS_TYPE_H
|
|
#include <core/queue.h>
|
|
#include <core/tags/track.h>
|
|
#include <glib.h>
|
|
#include <stdbool.h>
|
|
|
|
|
|
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 */
|