summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/lastfm_scrobbler.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/apps/plugins/lastfm_scrobbler.c b/apps/plugins/lastfm_scrobbler.c
index 02a6bedd9f..7f424d8aca 100644
--- a/apps/plugins/lastfm_scrobbler.c
+++ b/apps/plugins/lastfm_scrobbler.c
@@ -317,6 +317,11 @@ static void scrobbler_flush_callback(void)
317} 317}
318#endif 318#endif
319 319
320static inline char* str_chk_valid(char *s, char *alt)
321{
322 return (s != NULL ? s : alt);
323}
324
320static void scrobbler_add_to_cache(const struct mp3entry *id) 325static void scrobbler_add_to_cache(const struct mp3entry *id)
321{ 326{
322 if ( gCache.pos >= SCROBBLER_MAX_CACHE ) 327 if ( gCache.pos >= SCROBBLER_MAX_CACHE )
@@ -335,17 +340,19 @@ static void scrobbler_add_to_cache(const struct mp3entry *id)
335 if (id->tracknum > 0) 340 if (id->tracknum > 0)
336 rb->snprintf(tracknum, sizeof (tracknum), "%d", id->tracknum); 341 rb->snprintf(tracknum, sizeof (tracknum), "%d", id->tracknum);
337 342
343 char* artist = id->artist ? id->artist : id->albumartist;
344
338 int ret = rb->snprintf(&scrobbler_buf[(SCROBBLER_CACHE_LEN*gCache.pos)], 345 int ret = rb->snprintf(&scrobbler_buf[(SCROBBLER_CACHE_LEN*gCache.pos)],
339 SCROBBLER_CACHE_LEN, 346 SCROBBLER_CACHE_LEN,
340 "%s\t%s\t%s\t%s\t%d\t%c\t%ld\t%s\n", 347 "%s\t%s\t%s\t%s\t%d\t%c\t%ld\t%s\n",
341 id->artist ? id->artist : id->albumartist, 348 str_chk_valid(artist, UNTAGGED),
342 id->album, 349 str_chk_valid(id->album, ""),
343 id->title, 350 str_chk_valid(id->title, ""),
344 tracknum, 351 tracknum,
345 (int)(id->length / 1000), 352 (int)(id->length / 1000),
346 rating, 353 rating,
347 get_timestamp(), 354 get_timestamp(),
348 id->mb_track_id); 355 str_chk_valid(id->mb_track_id, ""));
349 356
350 if ( ret >= SCROBBLER_CACHE_LEN ) 357 if ( ret >= SCROBBLER_CACHE_LEN )
351 { 358 {