From 9393e4c24b4c18d7fe1fa8313008f30370cb726e Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Fri, 26 Nov 2010 18:02:50 +0000 Subject: Change how all the metadata parsers are read from a giant swich/case to function pointers via array index. Also unify the api. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28672 a1c6a512-1295-4272-9138-f99709370657 --- apps/metadata/asap.c | 3 ++- apps/metadata/metadata_parsers.h | 3 +-- apps/metadata/monkeys.c | 2 ++ apps/metadata/mp3.c | 8 +------- apps/metadata/mpc.c | 2 ++ apps/metadata/spc.c | 3 +++ apps/metadata/wavpack.c | 1 + 7 files changed, 12 insertions(+), 10 deletions(-) (limited to 'apps/metadata') diff --git a/apps/metadata/asap.c b/apps/metadata/asap.c index 0472798462..9e7f227031 100644 --- a/apps/metadata/asap.c +++ b/apps/metadata/asap.c @@ -248,6 +248,7 @@ bool get_asap_metadata(int fd, struct mp3entry* id3) id3->vbr = false; id3->filesize = filelength; - + id3->genre_string = id3_get_num_genre(36); + return true; } diff --git a/apps/metadata/metadata_parsers.h b/apps/metadata/metadata_parsers.h index 7238b71a30..7797b47094 100644 --- a/apps/metadata/metadata_parsers.h +++ b/apps/metadata/metadata_parsers.h @@ -23,8 +23,7 @@ char* id3_get_num_genre(unsigned int genre_num); int getid3v2len(int fd); bool setid3v1title(int fd, struct mp3entry *entry); void setid3v2title(int fd, struct mp3entry *entry); -bool get_mp3_metadata(int fd, struct mp3entry* id3, const char *filename); - +bool get_mp3_metadata(int fd, struct mp3entry* id3); bool get_adx_metadata(int fd, struct mp3entry* id3); bool get_aiff_metadata(int fd, struct mp3entry* id3); bool get_flac_metadata(int fd, struct mp3entry* id3); diff --git a/apps/metadata/monkeys.c b/apps/metadata/monkeys.c index 1cacff13af..4aff1412aa 100644 --- a/apps/metadata/monkeys.c +++ b/apps/metadata/monkeys.c @@ -91,5 +91,7 @@ bool get_monkeys_metadata(int fd, struct mp3entry* id3) id3->length = ((int64_t) totalsamples * 1000) / id3->frequency; id3->bitrate = (id3->filesize * 8) / id3->length; + + read_ape_tags(fd, id3); return true; } diff --git a/apps/metadata/mp3.c b/apps/metadata/mp3.c index c65fb39cd8..9309242604 100644 --- a/apps/metadata/mp3.c +++ b/apps/metadata/mp3.c @@ -163,14 +163,8 @@ static int getsonglength(int fd, struct mp3entry *entry) * about an MP3 file and updates it's entry accordingly. * Note, that this returns true for successful, false for error! */ -bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename) +bool get_mp3_metadata(int fd, struct mp3entry *entry) { -#if CONFIG_CODEC != SWCODEC - memset(entry, 0, sizeof(struct mp3entry)); -#endif - - strlcpy(entry->path, filename, sizeof(entry->path)); - entry->title = NULL; entry->filesize = filesize(fd); entry->id3v2len = getid3v2len(fd); diff --git a/apps/metadata/mpc.c b/apps/metadata/mpc.c index c6f3c3df72..f70e1d35df 100644 --- a/apps/metadata/mpc.c +++ b/apps/metadata/mpc.c @@ -211,5 +211,7 @@ bool get_musepack_metadata(int fd, struct mp3entry *id3) id3->filesize = filesize(fd); id3->bitrate = id3->filesize * 8 / id3->length; + + read_ape_tags(fd, id3); return true; } diff --git a/apps/metadata/spc.c b/apps/metadata/spc.c index 786c678c4c..f1fcb81707 100644 --- a/apps/metadata/spc.c +++ b/apps/metadata/spc.c @@ -124,5 +124,8 @@ bool get_spc_metadata(int fd, struct mp3entry* id3) id3->length = length+fade; + id3->filesize = filesize(fd); + id3->genre_string = id3_get_num_genre(36); + return true; } diff --git a/apps/metadata/wavpack.c b/apps/metadata/wavpack.c index a6ab6f2bd5..bb181b8d3f 100644 --- a/apps/metadata/wavpack.c +++ b/apps/metadata/wavpack.c @@ -136,6 +136,7 @@ bool get_wavpack_metadata(int fd, struct mp3entry* id3) id3->length = ((int64_t) totalsamples * 1000) / id3->frequency; id3->bitrate = filesize (fd) / (id3->length / 8); + read_ape_tags(fd, id3); return true; } -- cgit v1.2.3