mp3: when ID3 tags are not found, search APE tags
authoruchida <uchida@a1c6a512-1295-4272-9138-f99709370657>
Sat, 15 May 2010 10:20:06 +0000 (15 10:20 +0000)
committeruchida <uchida@a1c6a512-1295-4272-9138-f99709370657>
Sat, 15 May 2010 10:20:06 +0000 (15 10:20 +0000)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26048 a1c6a512-1295-4272-9138-f99709370657

apps/SOURCES
apps/metadata/id3tags.c
apps/metadata/metadata_common.c
apps/metadata/mp3.c
tools/database/SOURCES

index c6a9e6a..2642fa1 100644 (file)
@@ -171,12 +171,12 @@ usb_keymaps.c
 gui/usb_screen.c
 #endif
 metadata.c
+metadata/ape.c
 metadata/id3tags.c
+metadata/metadata_common.c
 metadata/mp3.c
 #if CONFIG_CODEC == SWCODEC
-metadata/metadata_common.c
 metadata/aiff.c
-metadata/ape.c
 metadata/asf.c
 metadata/adx.c
 metadata/flac.c
index a32d015..e54a17a 100644 (file)
@@ -45,9 +45,7 @@
 
 #include "metadata.h"
 #include "mp3data.h"
-#if CONFIG_CODEC == SWCODEC
 #include "metadata_common.h"
-#endif
 #include "metadata_parsers.h"
 
 static unsigned long unsync(unsigned long b0,
index e1ef9a0..4130fcf 100644 (file)
@@ -28,7 +28,9 @@
 #include "metadata.h"
 #include "metadata_common.h"
 #include "metadata_parsers.h"
+#if CONFIG_CODEC == SWCODEC
 #include "replaygain.h"
+#endif
 #include "misc.h"
 
 /* Skip an ID3v2 tag if it can be found. We assume the tag is located at the
@@ -250,7 +252,7 @@ long parse_tag(const char* name, char* value, struct mp3entry* id3,
     char* buf, long buf_remaining, enum tagtype type)
 {
     long len = 0;
-    char** p;
+    char** p = NULL;
 
     if ((((strcasecmp(name, "track") == 0) && (type == TAGTYPE_APE)))
         || ((strcasecmp(name, "tracknumber") == 0) && (type == TAGTYPE_VORBIS)))
@@ -331,11 +333,13 @@ long parse_tag(const char* name, char* value, struct mp3entry* id3,
     {
         p = &(id3->mb_track_id);
     }
+#if CONFIG_CODEC == SWCODEC
     else
     {
         len = parse_replaygain(name, value, id3, buf, buf_remaining);
         p = NULL;
     }
+#endif
     
     if (p)
     {
index c65fb39..d20dffe 100644 (file)
@@ -190,7 +190,11 @@ bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename)
 
     /* only seek to end of file if no id3v2 tags were found */
     if (!entry->id3v2len) {
-        setid3v1title(fd, entry);
+        if (!setid3v1title(fd, entry))
+        {
+            /* when ID3 tags are not found, search APE tags */
+            read_ape_tags(fd, entry);
+        }
     }
 
     if(!entry->length || (entry->filesize < 8 ))
index e66ea60..46c9468 100644 (file)
@@ -15,7 +15,9 @@ database.c
 ../../firmware/logf.c
 ../../uisimulator/common/io.c
 #if CONFIG_CODEC != SWCODEC
+../../apps/metadata/ape.c
 ../../apps/metadata/id3tags.c
+../../apps/metadata/metadata_common.c
 ../../apps/metadata/mp3.c
 #endif
 /* Caution. metadata files do not add!! */