summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcontrib/eventcmd.sh2
-rw-r--r--libpiano/src/piano.c1
-rw-r--r--libpiano/src/piano.h1
-rw-r--r--libpiano/src/xml.c2
-rw-r--r--src/pianobar.12
-rw-r--r--src/ui.c2
-rw-r--r--src/ui_act.c5
7 files changed, 12 insertions, 3 deletions
diff --git a/contrib/eventcmd.sh b/contrib/eventcmd.sh
index 6e3a081..4a162a3 100755
--- a/contrib/eventcmd.sh
+++ b/contrib/eventcmd.sh
@@ -5,7 +5,7 @@ while read L; do
k="`echo "$L" | cut -d '=' -f 1`"
v="`echo "$L" | cut -d '=' -f 2`"
export "$k=$v"
-done < <(grep -e '^\(title\|artist\|album\|stationName\|pRet\|pRetStr\|wRet\|wRetStr\|songDuration\|songPlayed\|rating\)=' /dev/stdin) # don't overwrite $1...
+done < <(grep -e '^\(title\|artist\|album\|stationName\|pRet\|pRetStr\|wRet\|wRetStr\|songDuration\|songPlayed\|rating\|coverArt\)=' /dev/stdin) # don't overwrite $1...
case "$1" in
# songstart)
diff --git a/libpiano/src/piano.c b/libpiano/src/piano.c
index 52b72c4..f6343b4 100644
--- a/libpiano/src/piano.c
+++ b/libpiano/src/piano.c
@@ -120,6 +120,7 @@ void PianoDestroyPlaylist (PianoSong_t *playlist) {
curSong = playlist;
while (curSong != NULL) {
free (curSong->audioUrl);
+ free (curSong->coverArt);
free (curSong->artist);
free (curSong->musicId);
free (curSong->title);
diff --git a/libpiano/src/piano.h b/libpiano/src/piano.h
index 52cfa75..ef6e386 100644
--- a/libpiano/src/piano.h
+++ b/libpiano/src/piano.h
@@ -68,6 +68,7 @@ typedef struct PianoSong {
char *album;
char *userSeed;
char *audioUrl;
+ char *coverArt;
char *musicId;
char *title;
float fileGain;
diff --git a/libpiano/src/xml.c b/libpiano/src/xml.c
index 36afc87..01294d8 100644
--- a/libpiano/src/xml.c
+++ b/libpiano/src/xml.c
@@ -259,6 +259,8 @@ static void PianoXmlParsePlaylistCb (const char *key, const ezxml_t value,
}
free (urlTail);
}
+ } else if (strcmp ("artRadio", key) == 0) {
+ song->coverArt = strdup (valueStr);
} else if (strcmp ("artistSummary", key) == 0) {
song->artist = strdup (valueStr);
} else if (strcmp ("musicId", key) == 0) {
diff --git a/src/pianobar.1 b/src/pianobar.1
index a27b606..6a6bd33 100644
--- a/src/pianobar.1
+++ b/src/pianobar.1
@@ -212,7 +212,7 @@ can report certain "events" to an external application (see
.B CONFIGURATION
). This application is started with the event name as it's first argument. More
information (artist, title, album, stationName, error code, error description,
-song length in milliseconds, rating) is supplied through stdin.
+song length in milliseconds, rating, album art url) is supplied through stdin.
Currently supported events are: artistbookmark, songban, songbookmark,
songexplain, songfinish, songlove, songmove, songshelf, songstart,
diff --git a/src/ui.c b/src/ui.c
index d115278..cef067d 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -599,6 +599,7 @@ void BarUiStartEventCmd (const BarSettings_t *settings, const char *type,
"artist=%s\n"
"title=%s\n"
"album=%s\n"
+ "coverArt=%s\n"
"stationName=%s\n"
"pRet=%i\n"
"pRetStr=%s\n"
@@ -610,6 +611,7 @@ void BarUiStartEventCmd (const BarSettings_t *settings, const char *type,
curSong == NULL ? "" : curSong->artist,
curSong == NULL ? "" : curSong->title,
curSong == NULL ? "" : curSong->album,
+ curSong == NULL ? "" : curSong->coverArt,
curStation == NULL ? "" : curStation->name,
pRet,
PianoErrorToStr (pRet),
diff --git a/src/ui_act.c b/src/ui_act.c
index 0f0cac2..35bc3ab 100644
--- a/src/ui_act.c
+++ b/src/ui_act.c
@@ -271,6 +271,7 @@ BarUiActCallback(BarUiActDebug) {
"artist:\t%s\n"
"audioFormat:\t%i\n"
"audioUrl:\t%s\n"
+ "coverArt:\t%s\n"
"fileGain:\t%f\n"
"musicId:\t%s\n"
"rating:\t%i\n"
@@ -280,7 +281,9 @@ BarUiActCallback(BarUiActDebug) {
"title:\t%s\n"
"userSeed:\t%s\n",
app->playlist->album, app->playlist->artist,
- app->playlist->audioFormat, app->playlist->audioUrl,
+ app->playlist->audioFormat,
+ app->playlist->audioUrl,
+ app->playlist->coverArt,
app->playlist->fileGain,
app->playlist->musicId, app->playlist->rating,
app->playlist->songType, app->playlist->stationId,