diff options
| author | Michael Giacomelli <giac2000@hotmail.com> | 2009-08-30 02:53:15 +0000 |
|---|---|---|
| committer | Michael Giacomelli <giac2000@hotmail.com> | 2009-08-30 02:53:15 +0000 |
| commit | e4c30bdf0edf6b93343ebafaa15bbbdf590a1d37 (patch) | |
| tree | faabaddc5a7102615a5b296d766916bd34cd1b6b /apps | |
| parent | a4e2d1f0718479a04dd013c80521583b29fe06cf (diff) | |
| download | rockbox-e4c30bdf0edf6b93343ebafaa15bbbdf590a1d37.zip rockbox-e4c30bdf0edf6b93343ebafaa15bbbdf590a1d37.tar.gz rockbox-e4c30bdf0edf6b93343ebafaa15bbbdf590a1d37.tar.bz2 rockbox-e4c30bdf0edf6b93343ebafaa15bbbdf590a1d37.tar.xz | |
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
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/SOURCES | 1 | ||||
| -rw-r--r-- | apps/metadata.c | 12 | ||||
| -rw-r--r-- | apps/metadata/metadata_parsers.h | 2 |
3 files changed, 5 insertions, 10 deletions
diff --git a/apps/SOURCES b/apps/SOURCES index 143d9d5..0408c32 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 400ce6f..56ab6c1 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 0464071..20a71c9 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); + |