From 579210df87bdd803c96b335d83b817d3199ffad6 Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Thu, 1 Sep 2005 17:03:09 +0000 Subject: 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 --- firmware/export/id3.h | 6 ++---- firmware/id3.c | 15 +++++++++------ 2 files changed, 11 insertions(+), 10 deletions(-) (limited to 'firmware') 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; + } } /* -- cgit v1.2.3