From c3cdc31f0d3b2fd3313cba5044e1207adba81048 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Wed, 2 Jul 2008 21:08:25 +0200 Subject: client: Show real station when playing quickmix song --- libpiano/src/main.c | 12 ++++++++++++ libpiano/src/piano.h | 4 +++- libpiano/src/xml.c | 2 ++ 3 files changed, 17 insertions(+), 1 deletion(-) (limited to 'libpiano') diff --git a/libpiano/src/main.c b/libpiano/src/main.c index d8d9498..4e72629 100644 --- a/libpiano/src/main.c +++ b/libpiano/src/main.c @@ -141,6 +141,7 @@ void PianoDestroyPlaylist (PianoHandle_t *ph) { PianoFree (curSong->title, 0); PianoFree (curSong->userSeed, 0); PianoFree (curSong->identity, 0); + PianoFree (curSong->stationId, 0); lastSong = curSong; curSong = curSong->next; PianoFree (lastSong, sizeof (*lastSong)); @@ -653,3 +654,14 @@ PianoReturn_t PianoSetQuickmix (PianoHandle_t *ph) { return ret; } + +PianoStation_t *PianoFindStationById (PianoStation_t *stations, + char *searchStation) { + while (stations != NULL) { + if (strcmp (stations->id, searchStation) == 0) { + return stations; + } + stations = stations->next; + } + return NULL; +} diff --git a/libpiano/src/piano.h b/libpiano/src/piano.h index 93c9fc1..7ee69fa 100644 --- a/libpiano/src/piano.h +++ b/libpiano/src/piano.h @@ -90,7 +90,7 @@ struct PianoSong { /* disabled: artistExplorerUrl */ /* disabled: artRadio */ //char *audioEncoding; /* FIXME: should be enum: mp3 or aacplus */ - //char *stationId; + char *stationId; //char *album; //char *artistMusicId; char *userSeed; @@ -169,5 +169,7 @@ PianoReturn_t PianoStationAddMusic (PianoHandle_t *ph, PianoStation_t *station, char *musicId); PianoReturn_t PianoSongTired (PianoHandle_t *ph, PianoSong_t *song); PianoReturn_t PianoSetQuickmix (PianoHandle_t *ph); +PianoStation_t *PianoFindStationById (PianoStation_t *stations, + char *searchStation); #endif /* _PIANO_H */ diff --git a/libpiano/src/xml.c b/libpiano/src/xml.c index ecd3394..a9be0a8 100644 --- a/libpiano/src/xml.c +++ b/libpiano/src/xml.c @@ -253,6 +253,8 @@ void PianoXmlParsePlaylistCb (char *key, xmlNode *value, void *data) { } else { song->rating = PIANO_RATE_NONE; } + } else if (strcmp ("stationId", key) == 0) { + song->stationId = strdup (valueStr); } } -- cgit v1.2.3