summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThibaut Mattern <tmattern@users.sourceforge.net>2003-12-08 23:20:16 +0000
committerThibaut Mattern <tmattern@users.sourceforge.net>2003-12-08 23:20:16 +0000
commitc41622aa1f1663646dafe87d1fd4585ec9f9a1bb (patch)
tree33ac8185b1b8f6dfbffdb2da424673db1fcd4751 /src
parenta6bf32b2367408085a6dd253394924c97b24cf9d (diff)
downloadxine-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.c36
-rw-r--r--src/demuxers/id3.h17
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 */