diff --git a/src/playlist.h b/src/playlist.h
index cee91002f840f288d92602888958896fa7b549de..e0d8ca5718e650937f29306010ee22506afdc424 100644 (file)
--- a/src/playlist.h
+++ b/src/playlist.h
/* ncmpc (Ncurses MPD Client)
- * (c) 2004-2009 The Music Player Daemon Project
+ * (c) 2004-2017 The Music Player Daemon Project
* Project homepage: http://musicpd.org
-
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-*/
+ */
#ifndef MPDCLIENT_PLAYLIST_H
#define MPDCLIENT_PLAYLIST_H
+#include "Compiler.h"
+
#include <mpd/client.h>
#include <assert.h>
#include <glib.h>
struct mpdclient_playlist {
- /* playlist id */
- unsigned id;
+ /* queue version number (obtained from mpd_status) */
+ unsigned version;
/* the list */
GPtrArray *list;
mpd_song_free(playlist_remove_reuse(playlist, idx));
}
-static inline void
-playlist_swap(struct mpdclient_playlist *playlist, guint idx1, guint idx2)
-{
- struct mpd_song *song1 = playlist_get(playlist, idx1);
- struct mpd_song *song2 = playlist_get(playlist, idx2);
- int n;
-
- /* update the songs position field */
- 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;
-}
+void
+playlist_move(struct mpdclient_playlist *playlist,
+ unsigned dest, unsigned src);
const struct mpd_song *
playlist_lookup_song(const struct mpdclient_playlist *playlist, unsigned id);
return playlist_get_index_from_file(playlist, mpd_song_get_uri(song));
}
+gcc_pure
+gint
+playlist_get_id_from_uri(const struct mpdclient_playlist *playlist,
+ const gchar *uri);
+
+gcc_pure
+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