summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorRobert Keevil <rkeevil+rockbox@gmail.com>2008-10-07 18:39:44 +0000
committerRobert Keevil <rkeevil+rockbox@gmail.com>2008-10-07 18:39:44 +0000
commit2c170356f38f5630b9fefdc5b1e7e57babb5cc40 (patch)
tree9ba565416427f76e6cf4754ef199ed02f804edf6 /apps
parent7eb194477a19a12d76bceb64108ffad2da784c9f (diff)
downloadrockbox-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.c3
-rw-r--r--apps/metadata/metadata_common.c5
-rw-r--r--apps/metadata/mp4.c5
-rw-r--r--apps/scrobbler.c14
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 )