summaryrefslogtreecommitdiff
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
parent4c4affa45696d5732c9b89b58084bc48ef6c54a8 (diff)
downloadrockbox-579210df87bdd803c96b335d83b817d3199ffad6.zip
rockbox-579210df87bdd803c96b335d83b817d3199ffad6.tar.gz
rockbox-579210df87bdd803c96b335d83b817d3199ffad6.tar.bz2
rockbox-579210df87bdd803c96b335d83b817d3199ffad6.tar.xz
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
-rw-r--r--apps/metadata.c3
-rw-r--r--apps/metadata.h2
-rw-r--r--apps/playback.c2
-rw-r--r--firmware/export/id3.h6
-rw-r--r--firmware/id3.c15
5 files changed, 14 insertions, 14 deletions
diff --git a/apps/metadata.c b/apps/metadata.c
index f2d7ed1..03ecf00 100644
--- a/apps/metadata.c
+++ b/apps/metadata.c
@@ -29,7 +29,7 @@
#include "debug.h"
/* Simple file type probing by looking filename extension. */
-int probe_file_format(const char *filename)
+unsigned int probe_file_format(const char *filename)
{
char *suffix;
@@ -60,7 +60,6 @@ int probe_file_format(const char *filename)
return AFMT_WAVPACK;
return AFMT_UNKNOWN;
-
}
unsigned short a52_bitrates[]={32,40,48,56,64,80,96,
diff --git a/apps/metadata.h b/apps/metadata.h
index 79ca2a2..f790146 100644
--- a/apps/metadata.h
+++ b/apps/metadata.h
@@ -22,7 +22,7 @@
#include "playback.h"
-int probe_file_format(const char *filename);
+unsigned int probe_file_format(const char *filename);
bool get_metadata(struct track_info* track, int fd, const char* trackname,
bool v1first);
diff --git a/apps/playback.c b/apps/playback.c
index c106644..a397617 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -833,7 +833,7 @@ bool loadcodec(const char *trackname, bool start_play)
{
char msgbuf[80];
off_t size;
- int filetype;
+ unsigned int filetype;
int fd;
int i, rc;
const char *codec_path;
diff --git a/firmware/export/id3.h b/firmware/export/id3.h
index d9b0432..d407b7b 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 f2b30d6..f2d1881 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;
+ }
}
/*