summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Giacomelli <giac2000@hotmail.com>2009-08-30 02:53:15 +0000
committerMichael Giacomelli <giac2000@hotmail.com>2009-08-30 02:53:15 +0000
commite4c30bdf0edf6b93343ebafaa15bbbdf590a1d37 (patch)
treefaabaddc5a7102615a5b296d766916bd34cd1b6b
parenta4e2d1f0718479a04dd013c80521583b29fe06cf (diff)
downloadrockbox-e4c30bdf0edf6b93343ebafaa15bbbdf590a1d37.tar.gz
rockbox-e4c30bdf0edf6b93343ebafaa15bbbdf590a1d37.zip
Accept FS#10570 by Jason Yu. Adds metadata parsing for NSF files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22557 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/SOURCES1
-rw-r--r--apps/metadata.c12
-rw-r--r--apps/metadata/metadata_parsers.h2
-rw-r--r--docs/CREDITS1
4 files changed, 6 insertions, 10 deletions
diff --git a/apps/SOURCES b/apps/SOURCES
index 143d9d50ea..0408c32583 100644
--- a/apps/SOURCES
+++ b/apps/SOURCES
@@ -172,6 +172,7 @@ metadata/wavpack.c
metadata/a52.c
metadata/asap.c
metadata/rm.c
+metadata/nsf.c
#endif
#ifdef HAVE_TAGCACHE
tagcache.c
diff --git a/apps/metadata.c b/apps/metadata.c
index 400ce6f469..56ab6c16e6 100644
--- a/apps/metadata.c
+++ b/apps/metadata.c
@@ -215,10 +215,6 @@ bool mp3info(struct mp3entry *entry, const char *filename)
*/
bool get_metadata(struct mp3entry* id3, int fd, const char* trackname)
{
-#if CONFIG_CODEC == SWCODEC
- unsigned char* buf;
-#endif
-
/* Clear the mp3entry to avoid having bogus pointers appear */
memset(id3, 0, sizeof(struct mp3entry));
@@ -356,15 +352,11 @@ bool get_metadata(struct mp3entry* id3, int fd, const char* trackname)
break;
case AFMT_NSF:
- buf = (unsigned char *)id3->path;
- if ((lseek(fd, 0, SEEK_SET) < 0) || ((read(fd, buf, 8)) < 8))
+ if (!get_nsf_metadata(fd, id3))
{
- DEBUGF("lseek or read failed\n");
+ DEBUGF("get_nsf_metadata error\n");
return false;
}
- id3->vbr = false;
- id3->filesize = filesize(fd);
- if (memcmp(buf,"NESM",4) && memcmp(buf,"NSFE",4)) return false;
break;
case AFMT_AIFF:
diff --git a/apps/metadata/metadata_parsers.h b/apps/metadata/metadata_parsers.h
index 0464071777..20a71c90b9 100644
--- a/apps/metadata/metadata_parsers.h
+++ b/apps/metadata/metadata_parsers.h
@@ -39,3 +39,5 @@ bool get_a52_metadata(int fd, struct mp3entry* id3);
bool get_asf_metadata(int fd, struct mp3entry* id3);
bool get_asap_metadata(int fd, struct mp3entry* id3);
bool get_rm_metadata(int fd, struct mp3entry* id3);
+bool get_nsf_metadata(int fd, struct mp3entry* id3);
+
diff --git a/docs/CREDITS b/docs/CREDITS
index 3a7cc84d4e..bd92cae474 100644
--- a/docs/CREDITS
+++ b/docs/CREDITS
@@ -489,6 +489,7 @@ Rosso Maltese
Amaury Pouly
Laurent Papier
Johannes Boy
+Jason Yu
The libmad team
The wavpack team