diff options
| author | Robert Keevil <rkeevil+rockbox@gmail.com> | 2008-10-07 18:39:44 +0000 |
|---|---|---|
| committer | Robert Keevil <rkeevil+rockbox@gmail.com> | 2008-10-07 18:39:44 +0000 |
| commit | 2c170356f38f5630b9fefdc5b1e7e57babb5cc40 (patch) | |
| tree | 9ba565416427f76e6cf4754ef199ed02f804edf6 /apps | |
| parent | 7eb194477a19a12d76bceb64108ffad2da784c9f (diff) | |
| download | rockbox-2c170356f38f5630b9fefdc5b1e7e57babb5cc40.zip rockbox-2c170356f38f5630b9fefdc5b1e7e57babb5cc40.tar.gz rockbox-2c170356f38f5630b9fefdc5b1e7e57babb5cc40.tar.bz2 rockbox-2c170356f38f5630b9fefdc5b1e7e57babb5cc40.tar.xz | |
FS#9139 - support for ver 1.1 scrobbler log files. Upload any old files first - uploading software may need updating, see the LastFMLog wiki page
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18732 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/metadata/asf.c | 3 | ||||
| -rw-r--r-- | apps/metadata/metadata_common.c | 5 | ||||
| -rw-r--r-- | apps/metadata/mp4.c | 5 | ||||
| -rw-r--r-- | apps/scrobbler.c | 14 |
4 files changed, 21 insertions, 6 deletions
diff --git a/apps/metadata/asf.c b/apps/metadata/asf.c index fa1308b..255a0bc 100644 --- a/apps/metadata/asf.c +++ b/apps/metadata/asf.c @@ -465,6 +465,9 @@ static int asf_parse_header(int fd, struct mp3entry* id3, id3buf = value; id3buf_remaining = buf_len; } + } else if (!strcmp("MusicBrainz/Track Id", utf8buf)) { + id3->mb_track_id = id3buf; + asf_utf16LEdecode(fd, length, &id3buf, &id3buf_remaining); } else { lseek(fd, length, SEEK_CUR); } diff --git a/apps/metadata/metadata_common.c b/apps/metadata/metadata_common.c index 1fff030..e4df874 100644 --- a/apps/metadata/metadata_common.c +++ b/apps/metadata/metadata_common.c @@ -293,6 +293,11 @@ long parse_tag(const char* name, char* value, struct mp3entry* id3, { p = &(id3->grouping); } + else if (strcasecmp(name, "musicbrainz_trackid") == 0 + || strcasecmp(name, "http://musicbrainz.org") == 0 ) + { + p = &(id3->mb_track_id); + } else { len = parse_replaygain(name, value, id3, buf, buf_remaining); diff --git a/apps/metadata/mp4.c b/apps/metadata/mp4.c index 187459b..493bc48 100644 --- a/apps/metadata/mp4.c +++ b/apps/metadata/mp4.c @@ -498,6 +498,11 @@ static bool read_mp4_tags(int fd, struct mp3entry* id3, DEBUGF("AAC: lead_trim %d, tail_trim %d\n", id3->lead_trim, id3->tail_trim); } + else if (strcasecmp(tag_name, "musicbrainz track id") == 0) + { + read_mp4_tag_string(fd, size, &buffer, &buffer_left, + &id3->mb_track_id); + } else { char* any; diff --git a/apps/scrobbler.c b/apps/scrobbler.c index 7af45a0..3b35e0d 100644 --- a/apps/scrobbler.c +++ b/apps/scrobbler.c @@ -7,7 +7,7 @@ * \/ \/ \/ \/ \/ * $Id$ * - * Copyright (C) 2006 Robert Keevil + * Copyright (C) 2006-2008 Robert Keevil * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -42,7 +42,7 @@ http://www.audioscrobbler.net/wiki/Portable_Player_Logging #include "scrobbler.h" -#define SCROBBLER_VERSION "1.0" +#define SCROBBLER_VERSION "1.1" #if CONFIG_RTC #define SCROBBLER_FILE "/.scrobbler.log" @@ -151,24 +151,26 @@ static void add_to_cache(unsigned long play_length) { ret = snprintf(scrobbler_cache+(SCROBBLER_CACHE_LEN*cache_pos), SCROBBLER_CACHE_LEN, - "%s\t%s\t%s\t%d\t%d\t%c\t%ld\n", + "%s\t%s\t%s\t%d\t%d\t%c\t%ld\t%s\n", scrobbler_entry.artist, scrobbler_entry.album?scrobbler_entry.album:"", scrobbler_entry.title, scrobbler_entry.tracknum, (int)scrobbler_entry.length/1000, rating, - (long)timestamp); + (long)timestamp, + scrobbler_entry.mb_track_id?scrobbler_entry.mb_track_id:""); } else { ret = snprintf(scrobbler_cache+(SCROBBLER_CACHE_LEN*cache_pos), SCROBBLER_CACHE_LEN, - "%s\t%s\t%s\t\t%d\t%c\t%ld\n", + "%s\t%s\t%s\t\t%d\t%c\t%ld\t%s\n", scrobbler_entry.artist, scrobbler_entry.album?scrobbler_entry.album:"", scrobbler_entry.title, (int)scrobbler_entry.length/1000, rating, - (long)timestamp); + (long)timestamp, + scrobbler_entry.mb_track_id?scrobbler_entry.mb_track_id:""); } if ( ret >= SCROBBLER_CACHE_LEN ) |