summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
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 @@
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 */
28enum { 28enum {
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
47struct mp3entry { 45struct 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
82static const char* const codec_labels[] = { 82static 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
96char* id3_get_genre(const struct mp3entry* id3) 99char* id3_get_genre(const struct mp3entry* id3)
@@ -105,11 +108,11 @@ char* id3_get_genre(const struct mp3entry* id3)
105 108
106char* id3_get_codec(const struct mp3entry* id3) 109char* 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/*