summaryrefslogtreecommitdiff
path: root/libpiano/src/main.c
diff options
context:
space:
mode:
authorLars-Dominik Braun <PromyLOPh@gmail.com>2008-06-19 15:49:23 +0200
committerLars-Dominik Braun <PromyLOPh@gmail.com>2008-06-19 15:49:23 +0200
commit880a0446c465d22ea3e36db838b8df1e594fa4da (patch)
tree150d66a02b7f99b193b6dda816896d15a190cd5a /libpiano/src/main.c
parent3e76f37c014f867f3b99e482ecb071884322f5d3 (diff)
downloadpianobar-880a0446c465d22ea3e36db838b8df1e594fa4da.tar.gz
pianobar-880a0446c465d22ea3e36db838b8df1e594fa4da.tar.bz2
pianobar-880a0446c465d22ea3e36db838b8df1e594fa4da.zip
"Add more music" implemented
This can add more track/artist seeds to the currently played station
Diffstat (limited to 'libpiano/src/main.c')
-rw-r--r--libpiano/src/main.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/libpiano/src/main.c b/libpiano/src/main.c
index 99daee1..1d5a6d0 100644
--- a/libpiano/src/main.c
+++ b/libpiano/src/main.c
@@ -464,3 +464,41 @@ PianoReturn_t PianoCreateStation (PianoHandle_t *ph, char *musicId) {
return ret;
}
+
+/* FIXME: update station data instead of replacing them */
+/* add more music to existing station; multithreaded apps beware! this alters
+ * station data, don't forget to lock the station pointer you passed to this
+ * function
+ * @public yes
+ * @param piano handle
+ * @param add music to this station
+ * @param music id; can be obtained with PianoSearchMusic ()
+ */
+PianoReturn_t PianoStationAddMusic (PianoHandle_t *ph,
+ PianoStation_t *station, char *musicId) {
+ char xmlSendBuf[10000], url[PIANO_URL_BUFFER_SIZE];
+ char *requestStr, *retStr;
+ PianoReturn_t ret;
+
+ snprintf (xmlSendBuf, sizeof (xmlSendBuf), "<?xml version=\"1.0\"?>"
+ "<methodCall><methodName>station.addSeed</methodName><params>"
+ "<param><value><int>%li</int></value></param>"
+ "<param><value><string>%s</string></value></param>"
+ "<param><value><string>%s</string></value></param>"
+ "<param><value><string>%s</string></value></param>"
+ "</params></methodCall>", time (NULL), ph->user.authToken,
+ station->id, musicId);
+ requestStr = PianoEncryptString (xmlSendBuf);
+
+ snprintf (url, sizeof (url), PIANO_RPC_URL "rid=%s&lid=%s"
+ "&method=addSeed&arg1=%s&arg2=%s", ph->routeId,
+ ph->user.listenerId, station->id, musicId);
+
+ PianoHttpPost (ph->curlHandle, url, requestStr, &retStr);
+ ret = PianoXmlParseAddSeed (ph, retStr, station);
+
+ free (requestStr);
+ free (retStr);
+
+ return ret;
+}