summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libpiano/src/main.c12
-rw-r--r--libpiano/src/piano.h4
-rw-r--r--libpiano/src/xml.c2
-rw-r--r--src/main.c10
4 files changed, 25 insertions, 3 deletions
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);
}
}
diff --git a/src/main.c b/src/main.c
index 744c731..4597e91 100644
--- a/src/main.c
+++ b/src/main.c
@@ -336,9 +336,15 @@ int main (int argc, char **argv) {
}
}
if (curSong != NULL) {
- printf ("\"%s\" by \"%s\"%s\n", curSong->title,
+ PianoStation_t *realStation =
+ PianoFindStationById (ph.stations,
+ curSong->stationId);
+ printf ("\"%s\" by \"%s\"%s%s%s\n", curSong->title,
curSong->artist, (curSong->rating ==
- PIANO_RATE_LOVE) ? " (Loved)" : "");
+ PIANO_RATE_LOVE) ? " (Loved)" : "",
+ curStation->isQuickMix ? " @ ": "",
+ curStation->isQuickMix ? realStation->name :
+ "");
/* setup artist and song name for scrobbling (curSong
* may be NULL later) */
WardrobeSongInit (&scrobbleSong);