diff --git a/src/playlist.h b/src/playlist.h
index 454f1f05f50ed1016e36bd47cd94cc1e17ff03ea..67319d24b346f46422a1dfb38d09f13f4492c6bf 100644 (file)
--- a/src/playlist.h
+++ b/src/playlist.h
#ifndef MPDCLIENT_PLAYLIST_H
#define MPDCLIENT_PLAYLIST_H
-#include "libmpdclient.h"
+#include <mpd/client.h>
#include <assert.h>
#include <glib.h>
-struct mpdclient;
-
-typedef struct mpdclient_playlist {
+struct mpdclient_playlist {
/* playlist id */
- long long id;
+ unsigned id;
/* the list */
GPtrArray *list;
-} mpdclient_playlist_t;
+};
void
playlist_init(struct mpdclient_playlist *playlist);
playlist_clear(struct mpdclient_playlist *playlist);
/* free a playlist */
-gint mpdclient_playlist_free(mpdclient_playlist_t *playlist);
+gint
+mpdclient_playlist_free(struct mpdclient_playlist *playlist);
static inline guint
playlist_length(const struct mpdclient_playlist *playlist)
}
static inline void
-playlist_append(struct mpdclient_playlist *playlist, const mpd_Song *song)
+playlist_append(struct mpdclient_playlist *playlist, const struct mpd_song *song)
{
- g_ptr_array_add(playlist->list, mpd_songDup(song));
+ g_ptr_array_add(playlist->list, mpd_song_dup(song));
}
static inline void
playlist_set(const struct mpdclient_playlist *playlist, guint idx,
- const mpd_Song *song)
+ const struct mpd_song *song)
{
assert(idx < playlist_length(playlist));
- g_ptr_array_index(playlist->list, idx) = mpd_songDup(song);
+ g_ptr_array_index(playlist->list, idx) = mpd_song_dup(song);
}
static inline void
playlist_replace(struct mpdclient_playlist *playlist, guint idx,
- const mpd_Song *song)
+ const struct mpd_song *song)
{
- mpd_freeSong(playlist_get(playlist, idx));
+ mpd_song_free(playlist_get(playlist, idx));
playlist_set(playlist, idx, song);
}
static inline void
playlist_remove(struct mpdclient_playlist *playlist, guint idx)
{
- mpd_freeSong(playlist_remove_reuse(playlist, idx));
+ mpd_song_free(playlist_remove_reuse(playlist, idx));
}
static inline void
playlist_swap(struct mpdclient_playlist *playlist, guint idx1, guint idx2)
{
- mpd_Song *song1 = playlist_get(playlist, idx1);
- mpd_Song *song2 = playlist_get(playlist, idx2);
- gint n;
+ struct mpd_song *song1 = playlist_get(playlist, idx1);
+ struct mpd_song *song2 = playlist_get(playlist, idx2);
+ int n;
/* update the songs position field */
- n = song1->pos;
- song1->pos = song2->pos;
- song2->pos = n;
+ n = mpd_song_get_pos(song1);
+ mpd_song_set_pos(song1, mpd_song_get_pos(song2));
+ mpd_song_set_pos(song2, n);
/* update the array */
g_ptr_array_index(playlist->list, idx1) = song2;
g_ptr_array_index(playlist->list, idx2) = song1;
}
-struct mpd_song *playlist_lookup_song(struct mpdclient *c, gint id);
+const struct mpd_song *
+playlist_lookup_song(const struct mpdclient_playlist *playlist, unsigned id);
+
+const struct mpd_song *
+playlist_get_song(const struct mpdclient_playlist *playlist, gint index);
+
+gint
+playlist_get_index(const struct mpdclient_playlist *playlist,
+ const struct mpd_song *song);
+
+gint
+playlist_get_index_from_id(const struct mpdclient_playlist *playlist,
+ unsigned id);
-struct mpd_song *playlist_get_song(struct mpdclient *c, gint index);
+gint
+playlist_get_index_from_file(const struct mpdclient_playlist *playlist,
+ const gchar *filename);
-gint playlist_get_index(struct mpdclient *c, struct mpd_song *song);
+static inline gint
+playlist_get_index_from_same_song(const struct mpdclient_playlist *playlist,
+ const struct mpd_song *song)
+{
+ return playlist_get_index_from_file(playlist, mpd_song_get_uri(song));
+}
-gint playlist_get_index_from_id(struct mpdclient *c, gint id);
+gint
+playlist_get_id_from_uri(const struct mpdclient_playlist *playlist,
+ const gchar *uri);
-gint playlist_get_index_from_file(struct mpdclient *c, gchar *filename);
+static inline gint
+playlist_get_id_from_same_song(const struct mpdclient_playlist *playlist,
+ const struct mpd_song *song)
+{
+ return playlist_get_id_from_uri(playlist, mpd_song_get_uri(song));
+}
#endif