summaryrefslogtreecommitdiff
path: root/apps/metadata
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-11-26 18:02:50 +0000
committerThomas Martitz <kugel@rockbox.org>2010-11-26 18:02:50 +0000
commit9393e4c24b4c18d7fe1fa8313008f30370cb726e (patch)
tree746e9210b2144c96b6d58a3f858ccdcb358d854e /apps/metadata
parent756c59a534d2e26b0e62fb94a326182f376b8a97 (diff)
downloadrockbox-9393e4c24b4c18d7fe1fa8313008f30370cb726e.zip
rockbox-9393e4c24b4c18d7fe1fa8313008f30370cb726e.tar.gz
rockbox-9393e4c24b4c18d7fe1fa8313008f30370cb726e.tar.bz2
rockbox-9393e4c24b4c18d7fe1fa8313008f30370cb726e.tar.xz
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
Diffstat (limited to 'apps/metadata')
-rw-r--r--apps/metadata/asap.c3
-rw-r--r--apps/metadata/metadata_parsers.h3
-rw-r--r--apps/metadata/monkeys.c2
-rw-r--r--apps/metadata/mp3.c8
-rw-r--r--apps/metadata/mpc.c2
-rw-r--r--apps/metadata/spc.c3
-rw-r--r--apps/metadata/wavpack.c1
7 files changed, 12 insertions, 10 deletions
diff --git a/apps/metadata/asap.c b/apps/metadata/asap.c
index 0472798..9e7f227 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 7238b71..7797b47 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 1cacff1..4aff141 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 c65fb39..9309242 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 c6f3c3d..f70e1d3 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 786c678..f1fcb81 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 a6ab6f2..bb181b8 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;
}