diff options
-rw-r--r-- | src/libpiano/piano.c | 37 | ||||
-rw-r--r-- | src/libpiano/piano.h | 6 |
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, |