diff options
author | Thibaut Mattern <tmattern@users.sourceforge.net> | 2003-12-08 23:20:16 +0000 |
---|---|---|
committer | Thibaut Mattern <tmattern@users.sourceforge.net> | 2003-12-08 23:20:16 +0000 |
commit | c41622aa1f1663646dafe87d1fd4585ec9f9a1bb (patch) | |
tree | 33ac8185b1b8f6dfbffdb2da424673db1fcd4751 /src | |
parent | a6bf32b2367408085a6dd253394924c97b24cf9d (diff) | |
download | xine-lib-c41622aa1f1663646dafe87d1fd4585ec9f9a1bb.tar.gz xine-lib-c41622aa1f1663646dafe87d1fd4585ec9f9a1bb.tar.bz2 |
- "Genre" list.
- id3v1 genre support
CVS patchset: 5878
CVS date: 2003/12/08 23:20:16
Diffstat (limited to 'src')
-rw-r--r-- | src/demuxers/id3.c | 36 | ||||
-rw-r--r-- | src/demuxers/id3.h | 17 |
2 files changed, 44 insertions, 9 deletions
diff --git a/src/demuxers/id3.c b/src/demuxers/id3.c index d7f58fc39..169d65922 100644 --- a/src/demuxers/id3.c +++ b/src/demuxers/id3.c @@ -32,7 +32,7 @@ * * ID3v2 specs: http://www.id3.org/ * - * $Id: id3.c,v 1.4 2003/12/08 22:10:20 tmattern Exp $ + * $Id: id3.c,v 1.5 2003/12/08 23:20:16 tmattern Exp $ */ #ifdef HAVE_CONFIG_H @@ -50,6 +50,35 @@ #include "bswap.h" #include "id3.h" +#define ID3_GENRE_COUNT 126 +static const char* const id3_genre[] = + {"Blues", "Classic Rock", "Country", "Dance", "Disco", + "Funk", "Grunge", "Hip-Hop", "Jazz", "Metal", + "New Age", "Oldies", "Other", "Pop", "R&B", + "Rap", "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", "Soundtrack", + "Euro-Techno", "Ambient", "Trip-Hop", "Vocal", "Jazz+Funk", + "Fusion", "Trance", "Classical", "Instrumental", "Acid", + "House", "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", "Space", + "Meditative", "Instrumental Pop", "Instrumental Rock", "Ethnic", "Gothic", + "Darkwave", "Techno-Industrial", "Electronic", "Pop-Folk", "Eurodance", + "Dream", "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop/Funk", "Jungle", "Native American", + "Cabaret", "New Wave", "Psychadelic", "Rave", "Showtunes", + "Trailer", "Lo-Fi", "Tribal", "Acid Punk", "Acid Jazz", + "Polka", "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", "Fast Fusion", + "Bebob", "Latin", "Revival", "Celtic", "Bluegrass", + "Avantgarde", "Gothic Rock", "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", + "Slow Rock", "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", "Chamber Music", + "Sonata", "Symphony", "Booty Bass", "Primus", "Porn Groove", + "Satire", "Slow Jam", "Club", "Tango", "Samba", + "Folklore", "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A capella", "Euro-House", + "Dance Hall" }; + int id3v1_parse_tag (input_plugin_t *input, xine_stream_t *stream) { off_t len; @@ -67,6 +96,11 @@ int id3v1_parse_tag (input_plugin_t *input, xine_stream_t *stream) { _x_meta_info_n_set(stream, XINE_META_INFO_ARTIST, tag.artist, 30); _x_meta_info_n_set(stream, XINE_META_INFO_ALBUM, tag.album, 30); _x_meta_info_n_set(stream, XINE_META_INFO_COMMENT, tag.comment, 30); + + if (tag.genre < ID3_GENRE_COUNT) { + _x_meta_info_set(stream, XINE_META_INFO_GENRE, id3_genre[tag.genre]); + } + } return 1; } else { diff --git a/src/demuxers/id3.h b/src/demuxers/id3.h index 2da088e2b..570663e9c 100644 --- a/src/demuxers/id3.h +++ b/src/demuxers/id3.h @@ -22,7 +22,7 @@ * Supported versions: v1, v2.2 * TODO: v2.3, v2.4 * - * $Id: id3.h,v 1.2 2003/12/08 22:10:20 tmattern Exp $ + * $Id: id3.h,v 1.3 2003/12/08 23:20:16 tmattern Exp $ */ #ifndef ID3_H @@ -116,13 +116,13 @@ typedef struct { } id3v23_frame_ext_header_t; typedef struct { - char tag[3]; - char title[30]; - char artist[30]; - char album[30]; - char year[4]; - char comment[30]; - char genre; + char tag[3]; + char title[30]; + char artist[30]; + char album[30]; + char year[4]; + char comment[30]; + uint8_t genre; } id3v1_tag_t; int id3v1_parse_tag (input_plugin_t *input, xine_stream_t *stream); @@ -135,4 +135,5 @@ int id3v23_parse_tag(input_plugin_t *input, xine_stream_t *stream, int8_t *mp3_frame_header); + #endif /* ID3_H */ |