summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-09-01 17:03:09 +0000
committerJens Arnold <amiconn@rockbox.org>2005-09-01 17:03:09 +0000
commit579210df87bdd803c96b335d83b817d3199ffad6 (patch)
treefa66565019709c3bcca21af747a93128aa41fbe7 /firmware
parent4c4affa45696d5732c9b89b58084bc48ef6c54a8 (diff)
downloadrockbox-579210df87bdd803c96b335d83b817d3199ffad6.tar.gz
rockbox-579210df87bdd803c96b335d83b817d3199ffad6.zip
Restructured codec type handling a bit. Reduced code size, esp. on archos.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7443 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/export/id3.h6
-rw-r--r--firmware/id3.c15
2 files changed, 11 insertions, 10 deletions
diff --git a/firmware/export/id3.h b/firmware/export/id3.h
index d9b0432023..d407b7b7cf 100644
--- a/firmware/export/id3.h
+++ b/firmware/export/id3.h
@@ -26,10 +26,9 @@
/* Audio file types. */
/* NOTE: When adding new audio types, also add to codec_labels[] in id3.c */
enum {
- AFMT_UNKNOWN = 1, /* Unknown file format */
+ AFMT_UNKNOWN = 0, /* Unknown file format */
AFMT_MPA_L1, /* MPEG Audio layer 1 */
-
AFMT_MPA_L2, /* MPEG Audio layer 2 */
AFMT_MPA_L3, /* MPEG Audio layer 3 */
@@ -41,7 +40,6 @@ enum {
AFMT_WAVPACK, /* WavPack */
/* New formats must be added to the end of this list */
- AFMT_ENDMARKER /* THIS MUST BE THE LAST VALUE */
};
struct mp3entry {
@@ -56,10 +54,10 @@ struct mp3entry {
int tracknum;
int version;
int layer;
- int codectype;
int year;
unsigned char id3version;
unsigned char genre;
+ unsigned int codectype;
unsigned int bitrate;
unsigned int frequency;
unsigned int id3v2len;
diff --git a/firmware/id3.c b/firmware/id3.c
index f2b30d6d5b..f2d1881cd8 100644
--- a/firmware/id3.c
+++ b/firmware/id3.c
@@ -80,17 +80,20 @@ static const char* const genres[] = {
};
static const char* const codec_labels[] = {
- "ERR", /* Invalid codec type */
"???", /* Unknown file format */
+
"MP1", /* MPEG Audio layer 1 */
"MP2", /* MPEG Audio layer 2 */
"MP3", /* MPEG Audio layer 3 */
+
+#if CONFIG_CODEC == SWCODEC
"WAV", /* Uncompressed PCM in a WAV file */
"OGG", /* Ogg Vorbis */
"FLAC", /* FLAC */
"MPC", /* Musepack */
"AC3", /* A/52 (aka AC3) audio */
"WV", /* WavPack */
+#endif
};
char* id3_get_genre(const struct mp3entry* id3)
@@ -105,11 +108,11 @@ char* id3_get_genre(const struct mp3entry* id3)
char* id3_get_codec(const struct mp3entry* id3)
{
- if ((id3->codectype >= 0) && (id3->codectype < AFMT_ENDMARKER)) {
- return (char*)codec_labels[id3->codectype];
- } else {
- return NULL;
- }
+ if (id3->codectype < sizeof(codec_labels)/sizeof(char*)) {
+ return (char*)codec_labels[id3->codectype];
+ } else {
+ return NULL;
+ }
}
/*