X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fplaylist.h;h=e0d8ca5718e650937f29306010ee22506afdc424;hb=3b7d3e2269094119c48b5a75d41b5c8066097cbd;hp=67319d24b346f46422a1dfb38d09f13f4492c6bf;hpb=dad8644db50c1754f7d497af8c28bbf1e9fc813b;p=ncmpc.git diff --git a/src/playlist.h b/src/playlist.h index 67319d2..e0d8ca5 100644 --- a/src/playlist.h +++ b/src/playlist.h @@ -1,33 +1,35 @@ /* 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 #include #include struct mpdclient_playlist { - /* playlist id */ - unsigned id; + /* queue version number (obtained from mpd_status) */ + unsigned version; /* the list */ GPtrArray *list; @@ -102,22 +104,9 @@ playlist_remove(struct mpdclient_playlist *playlist, guint idx) 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); @@ -144,10 +133,12 @@ playlist_get_index_from_same_song(const struct mpdclient_playlist *playlist, 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)