diff options
author | Jens Arnold <amiconn@rockbox.org> | 2005-09-01 17:03:09 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2005-09-01 17:03:09 +0000 |
commit | 579210df87bdd803c96b335d83b817d3199ffad6 (patch) | |
tree | fa66565019709c3bcca21af747a93128aa41fbe7 /firmware | |
parent | 4c4affa45696d5732c9b89b58084bc48ef6c54a8 (diff) | |
download | rockbox-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.h | 6 | ||||
-rw-r--r-- | firmware/id3.c | 15 |
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 @@ | |||
26 | /* Audio file types. */ | 26 | /* Audio file types. */ |
27 | /* NOTE: When adding new audio types, also add to codec_labels[] in id3.c */ | 27 | /* NOTE: When adding new audio types, also add to codec_labels[] in id3.c */ |
28 | enum { | 28 | enum { |
29 | AFMT_UNKNOWN = 1, /* Unknown file format */ | 29 | AFMT_UNKNOWN = 0, /* Unknown file format */ |
30 | 30 | ||
31 | AFMT_MPA_L1, /* MPEG Audio layer 1 */ | 31 | AFMT_MPA_L1, /* MPEG Audio layer 1 */ |
32 | |||
33 | AFMT_MPA_L2, /* MPEG Audio layer 2 */ | 32 | AFMT_MPA_L2, /* MPEG Audio layer 2 */ |
34 | AFMT_MPA_L3, /* MPEG Audio layer 3 */ | 33 | AFMT_MPA_L3, /* MPEG Audio layer 3 */ |
35 | 34 | ||
@@ -41,7 +40,6 @@ enum { | |||
41 | AFMT_WAVPACK, /* WavPack */ | 40 | AFMT_WAVPACK, /* WavPack */ |
42 | 41 | ||
43 | /* New formats must be added to the end of this list */ | 42 | /* New formats must be added to the end of this list */ |
44 | AFMT_ENDMARKER /* THIS MUST BE THE LAST VALUE */ | ||
45 | }; | 43 | }; |
46 | 44 | ||
47 | struct mp3entry { | 45 | struct mp3entry { |
@@ -56,10 +54,10 @@ struct mp3entry { | |||
56 | int tracknum; | 54 | int tracknum; |
57 | int version; | 55 | int version; |
58 | int layer; | 56 | int layer; |
59 | int codectype; | ||
60 | int year; | 57 | int year; |
61 | unsigned char id3version; | 58 | unsigned char id3version; |
62 | unsigned char genre; | 59 | unsigned char genre; |
60 | unsigned int codectype; | ||
63 | unsigned int bitrate; | 61 | unsigned int bitrate; |
64 | unsigned int frequency; | 62 | unsigned int frequency; |
65 | unsigned int id3v2len; | 63 | 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[] = { | |||
80 | }; | 80 | }; |
81 | 81 | ||
82 | static const char* const codec_labels[] = { | 82 | static const char* const codec_labels[] = { |
83 | "ERR", /* Invalid codec type */ | ||
84 | "???", /* Unknown file format */ | 83 | "???", /* Unknown file format */ |
84 | |||
85 | "MP1", /* MPEG Audio layer 1 */ | 85 | "MP1", /* MPEG Audio layer 1 */ |
86 | "MP2", /* MPEG Audio layer 2 */ | 86 | "MP2", /* MPEG Audio layer 2 */ |
87 | "MP3", /* MPEG Audio layer 3 */ | 87 | "MP3", /* MPEG Audio layer 3 */ |
88 | |||
89 | #if CONFIG_CODEC == SWCODEC | ||
88 | "WAV", /* Uncompressed PCM in a WAV file */ | 90 | "WAV", /* Uncompressed PCM in a WAV file */ |
89 | "OGG", /* Ogg Vorbis */ | 91 | "OGG", /* Ogg Vorbis */ |
90 | "FLAC", /* FLAC */ | 92 | "FLAC", /* FLAC */ |
91 | "MPC", /* Musepack */ | 93 | "MPC", /* Musepack */ |
92 | "AC3", /* A/52 (aka AC3) audio */ | 94 | "AC3", /* A/52 (aka AC3) audio */ |
93 | "WV", /* WavPack */ | 95 | "WV", /* WavPack */ |
96 | #endif | ||
94 | }; | 97 | }; |
95 | 98 | ||
96 | char* id3_get_genre(const struct mp3entry* id3) | 99 | char* id3_get_genre(const struct mp3entry* id3) |
@@ -105,11 +108,11 @@ char* id3_get_genre(const struct mp3entry* id3) | |||
105 | 108 | ||
106 | char* id3_get_codec(const struct mp3entry* id3) | 109 | char* id3_get_codec(const struct mp3entry* id3) |
107 | { | 110 | { |
108 | if ((id3->codectype >= 0) && (id3->codectype < AFMT_ENDMARKER)) { | 111 | if (id3->codectype < sizeof(codec_labels)/sizeof(char*)) { |
109 | return (char*)codec_labels[id3->codectype]; | 112 | return (char*)codec_labels[id3->codectype]; |
110 | } else { | 113 | } else { |
111 | return NULL; | 114 | return NULL; |
112 | } | 115 | } |
113 | } | 116 | } |
114 | 117 | ||
115 | /* | 118 | /* |