--- a/upmpd/mpdcli.cxx
+++ b/upmpd/mpdcli.cxx
@@ -67,7 +67,6 @@
return false;
}
}
- mpd_run_consume(M_CONN, true);
return true;
}
@@ -371,6 +370,16 @@
RETRY_CMD(mpd_run_repeat(M_CONN, on));
return true;
}
+
+bool MPDCli::consume(bool on)
+{
+ LOGDEB("MPDCli::consume:" << on << endl);
+ if (!ok())
+ return false;
+
+ RETRY_CMD(mpd_run_consume(M_CONN, on));
+ return true;
+}
bool MPDCli::random(bool on)
{
LOGDEB("MPDCli::random:" << on << endl);
@@ -403,7 +412,7 @@
return id;
}
-bool MPDCli::insertAfterId(const string& uri, int id)
+int MPDCli::insertAfterId(const string& uri, int id)
{
LOGDEB("MPDCli::insertAfterId: id " << id << " uri " << uri << endl);
if (!ok())
@@ -414,23 +423,23 @@
// id == 0 means insert at start
if (id == 0) {
- return insert(uri, 0) != -1;
+ return insert(uri, 0);
}
vector<mpd_song*> songs;
if (!getQueueSongs(songs)) {
return false;
}
- bool ok = false;
+ int newid = -1;
for (unsigned int pos = 0; pos < songs.size(); pos++) {
unsigned int qid = mpd_song_get_id(songs[pos]);
- if (qid == (unsigned int)id) {
- ok = insert(uri, pos+1) != -1;
+ if (qid == (unsigned int)id || pos == songs.size() -1) {
+ newid = insert(uri, pos+1);
break;
}
}
freeSongs(songs);
- return ok;
+ return newid;
}
bool MPDCli::clearQueue()