diff options
Diffstat (limited to 'firmware')
| -rw-r--r-- | firmware/export/id3.h | 2 | ||||
| -rw-r--r-- | firmware/id3.c | 15 |
2 files changed, 17 insertions, 0 deletions
diff --git a/firmware/export/id3.h b/firmware/export/id3.h index 75af992..83fc2cd 100644 --- a/firmware/export/id3.h +++ b/firmware/export/id3.h @@ -142,6 +142,8 @@ struct mp3entry { char* track_string; char* year_string; char* composer; + char* comment; + char* albumartist; int tracknum; int version; int layer; diff --git a/firmware/id3.c b/firmware/id3.c index bc42cf5..bdcf8e5 100644 --- a/firmware/id3.c +++ b/firmware/id3.c @@ -351,6 +351,14 @@ static int parseyearnum( struct mp3entry* entry, char* tag, int bufferpos ) return bufferpos; } +/* parse comment */ +static int parsecomment( struct mp3entry* entry, char* tag, int bufferpos ) +{ + + entry->comment = tag + 4; // simplistic + return bufferpos; +} + /* parse numeric genre from string, version 2.2 and 2.3 */ static int parsegenre( struct mp3entry* entry, char* tag, int bufferpos ) { @@ -448,6 +456,9 @@ static const struct tag_resolver taglist[] = { { "TYER", 4, offsetof(struct mp3entry, year_string), &parseyearnum, false }, { "TYE", 3, offsetof(struct mp3entry, year_string), &parseyearnum, false }, { "TCOM", 4, offsetof(struct mp3entry, composer), NULL, false }, + { "TPE2", 4, offsetof(struct mp3entry, albumartist), NULL, false }, + { "TP2", 3, offsetof(struct mp3entry, albumartist), NULL, false }, + { "COMM", 4, offsetof(struct mp3entry, comment), &parsecomment, false }, { "TCON", 4, offsetof(struct mp3entry, genre_string), &parsegenre, false }, { "TCO", 3, offsetof(struct mp3entry, genre_string), &parsegenre, false }, #if CONFIG_CODEC == SWCODEC @@ -1151,6 +1162,10 @@ void adjust_mp3entry(struct mp3entry *entry, void *dest, void *orig) entry->year_string += offset; if (entry->composer) entry->composer += offset; + if (entry->comment) + entry->comment += offset; + if (entry->albumartist) + entry->albumartist += offset; #if CONFIG_CODEC == SWCODEC if (entry->track_gain_string) entry->track_gain_string += offset; |