diff options
author | Juan C. Muller <jcmuller@gmail.com> | 2010-11-23 15:17:43 -0500 |
---|---|---|
committer | Lars-Dominik Braun <PromyLOPh@lavabit.com> | 2010-11-23 22:12:29 +0100 |
commit | 91192bd1473d6a43eb27ea802ac6fbd451f28fb2 (patch) | |
tree | 5f0145b52859c1dedd2b0eaab6ef49ddd163382f | |
parent | b1ed17b08da468589c178d4a21daa77a481a04c8 (diff) | |
download | pianobar-91192bd1473d6a43eb27ea802ac6fbd451f28fb2.tar.gz pianobar-91192bd1473d6a43eb27ea802ac6fbd451f28fb2.tar.bz2 pianobar-91192bd1473d6a43eb27ea802ac6fbd451f28fb2.zip |
Add support for art covers included in the XML playlist from pandora.
See issue #56
-rwxr-xr-x | contrib/eventcmd.sh | 2 | ||||
-rw-r--r-- | libpiano/src/piano.c | 1 | ||||
-rw-r--r-- | libpiano/src/piano.h | 1 | ||||
-rw-r--r-- | libpiano/src/xml.c | 2 | ||||
-rw-r--r-- | src/pianobar.1 | 2 | ||||
-rw-r--r-- | src/ui.c | 2 | ||||
-rw-r--r-- | src/ui_act.c | 5 |
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, @@ -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, |