summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2011-03-21 13:19:39 +0100
committerLars-Dominik Braun <lars@6xq.net>2011-03-21 14:54:30 +0100
commitab98a7b6ac4637301b0e2ff62970cabf2d639408 (patch)
treeb2bf59df8d6770f1a0864067f0047587fe27983d
parentceed4acd2f404dede571a014c186acc985397d94 (diff)
downloadpianobar-ab98a7b6ac4637301b0e2ff62970cabf2d639408.tar.gz
pianobar-ab98a7b6ac4637301b0e2ff62970cabf2d639408.tar.bz2
pianobar-ab98a7b6ac4637301b0e2ff62970cabf2d639408.zip
piano: Delete seed support
-rw-r--r--src/libpiano/piano.c37
-rw-r--r--src/libpiano/piano.h6
2 files changed, 43 insertions, 0 deletions
diff --git a/src/libpiano/piano.c b/src/libpiano/piano.c
index 9075df7..49cbf27 100644
--- a/src/libpiano/piano.c
+++ b/src/libpiano/piano.c
@@ -755,6 +755,36 @@ PianoReturn_t PianoRequest (PianoHandle_t *ph, PianoRequest_t *req,
break;
}
+ case PIANO_REQUEST_DELETE_SEED: {
+ PianoRequestDataDeleteSeed_t *reqData = req->data;
+ char *seedId = NULL;
+
+ assert (reqData != NULL);
+ assert (reqData->song != NULL || reqData->artist != NULL);
+
+ if (reqData->song != NULL) {
+ seedId = reqData->song->seedId;
+ } else if (reqData->artist != NULL) {
+ seedId = reqData->artist->seedId;
+ }
+
+ assert (seedId != NULL);
+
+ snprintf (xmlSendBuf, sizeof (xmlSendBuf), "<?xml version=\"1.0\"?>"
+ "<methodCall><methodName>station.deleteSeed</methodName>"
+ "<params><param><value><int>%lu</int></value></param>"
+ /* auth token */
+ "<param><value><string>%s</string></value></param>"
+ /* seed id */
+ "<param><value><string>%s</string></value></param>"
+ "</params></methodCall>", (unsigned long) timestamp,
+ ph->user.authToken, seedId);
+ snprintf (req->urlPath, sizeof (req->urlPath), PIANO_RPC_PATH
+ "rid=%s&lid=%s&method=deleteSeed&arg1=%s",
+ ph->routeId, ph->user.listenerId, seedId);
+ break;
+ }
+
/* "high-level" wrapper */
case PIANO_REQUEST_RATE_SONG: {
/* love/ban song */
@@ -1089,6 +1119,13 @@ PianoReturn_t PianoResponse (PianoHandle_t *ph, PianoRequest_t *req) {
&reqData->info);
break;
}
+
+ case PIANO_REQUEST_DELETE_SEED: {
+ assert (req->responseData != NULL);
+
+ /* dummy function, checks for errors only */
+ ret = PianoXmlParseTranformStation (req->responseData);
+ }
}
return ret;
diff --git a/src/libpiano/piano.h b/src/libpiano/piano.h
index d013363..9ca7827 100644
--- a/src/libpiano/piano.h
+++ b/src/libpiano/piano.h
@@ -145,6 +145,7 @@ typedef enum {
PIANO_REQUEST_BOOKMARK_ARTIST = 19,
PIANO_REQUEST_GET_STATION_INFO = 20,
PIANO_REQUEST_DELETE_FEEDBACK = 21,
+ PIANO_REQUEST_DELETE_SEED = 22,
} PianoRequestType_t;
typedef struct PianoRequest {
@@ -225,6 +226,11 @@ typedef struct {
PianoStationInfo_t info;
} PianoRequestDataGetStationInfo_t;
+typedef struct {
+ PianoSong_t *song;
+ PianoArtist_t *artist;
+} PianoRequestDataDeleteSeed_t;
+
typedef enum {
PIANO_RET_ERR = 0,
PIANO_RET_OK = 1,