From b9791891118517a268744dd135d1d30bff1ca323 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sat, 10 Oct 2009 16:23:00 +0200 Subject: [PATCH] pass to MPD::Connection::AddSong() another parameter - position to add --- src/mpdpp.cpp | 11 +++++++---- src/mpdpp.h | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/mpdpp.cpp b/src/mpdpp.cpp index aa236b8b..5902f428 100644 --- a/src/mpdpp.cpp +++ b/src/mpdpp.cpp @@ -409,14 +409,17 @@ void Connection::SetCrossfade(unsigned crossfade) const (isCommandsListEnabled ? mpd_send_crossfade : mpd_run_crossfade)(itsConnection, crossfade); } -int Connection::AddSong(const std::string &path) +int Connection::AddSong(const std::string &path, int pos) { if (!itsConnection) return -1; int id = -1; if (GetPlaylistLength() < itsMaxPlaylistLength) { - mpd_send_add_id(itsConnection, path.c_str()); + if (pos < 0) + mpd_send_add_id(itsConnection, path.c_str()); + else + mpd_send_add_id_to(itsConnection, path.c_str(), pos); if (!isCommandsListEnabled) { id = mpd_recv_song_id(itsConnection); @@ -431,9 +434,9 @@ int Connection::AddSong(const std::string &path) return id; } -int Connection::AddSong(const Song &s) +int Connection::AddSong(const Song &s, int pos) { - return !s.Empty() ? (AddSong((!s.isFromDB() ? "file://" : "") + (s.Localized() ? locale_to_utf_cpy(s.GetFile()) : s.GetFile()))) : -1; + return !s.Empty() ? (AddSong((!s.isFromDB() ? "file://" : "") + (s.Localized() ? locale_to_utf_cpy(s.GetFile()) : s.GetFile()), pos)) : -1; } void Connection::Add(const std::string &path) const diff --git a/src/mpdpp.h b/src/mpdpp.h index 03a586f3..e28f8e27 100644 --- a/src/mpdpp.h +++ b/src/mpdpp.h @@ -152,8 +152,8 @@ namespace MPD void SetCrossfade(unsigned) const; void SetVolume(unsigned); - int AddSong(const std::string &); // returns id of added song - int AddSong(const Song &); // returns id of added song + int AddSong(const std::string &, int = -1); // returns id of added song + int AddSong(const Song &, int = -1); // returns id of added song bool AddRandomSongs(size_t); void Add(const std::string &path) const; void Delete(unsigned) const;