summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeon Merten Lohse <leon@green-side.de>2012-10-18 12:25:11 +0200
committerLeon Merten Lohse <leon@green-side.de>2012-10-18 13:19:27 +0200
commit345b1686050219fccecbec9a52e44d97b6c1826a (patch)
tree56529f3beae5c73942f3bafb2bdca6d8947aef7f
parent9a0496c59daf54aedd1ae9a154125f6938025453 (diff)
Add cdtext_get_genre
Add GENRE_CODE output to cd-info and update test
-rw-r--r--include/cdio/cdtext.h7
-rw-r--r--lib/driver/cdtext.c12
-rw-r--r--lib/driver/libcdio.sym1
-rw-r--r--src/cd-info.c6
-rw-r--r--test/cdtext.right2
5 files changed, 28 insertions, 0 deletions
diff --git a/include/cdio/cdtext.h b/include/cdio/cdtext.h
index 95494d0d..147a50d9 100644
--- a/include/cdio/cdtext.h
+++ b/include/cdio/cdtext.h
@@ -262,6 +262,13 @@ char *cdtext_get (const cdtext_t *p_cdtext, cdtext_field_t key, track_t track);
const char *cdtext_get_const (const cdtext_t *p_cdtext, cdtext_field_t key, track_t track);
/*!
+ Returns the discs genre code.
+
+ @param p_cdtext the CD-TEXT object
+*/
+cdtext_genre_t cdtext_get_genre (const cdtext_t *p_cdtext);
+
+/*!
Returns the currently active language.
@param p_cdtext the CD-TEXT object
diff --git a/lib/driver/cdtext.c b/lib/driver/cdtext.c
index 2584272a..4daf93d0 100644
--- a/lib/driver/cdtext.c
+++ b/lib/driver/cdtext.c
@@ -296,6 +296,18 @@ cdtext_get_const(const cdtext_t *p_cdtext, cdtext_field_t field, track_t track)
return p_cdtext->block[p_cdtext->block_i].track[track].field[field];
}
+/*!
+ Returns the discs genre code.
+
+ @param p_cdtext the CD-TEXT object
+*/
+cdtext_genre_t
+cdtext_get_genre(const cdtext_t *p_cdtext)
+{
+ if (NULL == p_cdtext)
+ return CDTEXT_GENRE_UNUSED;
+ return p_cdtext->block[p_cdtext->block_i].genre_code;
+}
/*!
Returns the currently active language.
diff --git a/lib/driver/libcdio.sym b/lib/driver/libcdio.sym
index 80856bae..29fff5fb 100644
--- a/lib/driver/libcdio.sym
+++ b/lib/driver/libcdio.sym
@@ -186,6 +186,7 @@ cdtext_genre2str
cdtext_lang2str
cdtext_get
cdtext_get_const
+cdtext_get_genre
cdtext_get_language
cdtext_init
cdtext_list_languages
diff --git a/src/cd-info.c b/src/cd-info.c
index f66cf98c..525256e0 100644
--- a/src/cd-info.c
+++ b/src/cd-info.c
@@ -435,6 +435,8 @@ print_cdtext_info(CdIo_t *p_cdio, track_t i_tracks, track_t i_first_track) {
track_t i_last_track = i_first_track+i_tracks;
cdtext_t *p_cdtext = cdio_get_cdtext(p_cdio);
cdtext_lang_t *languages;
+ cdtext_genre_t genre;
+
int i, j;
if(NULL == p_cdtext) {
@@ -450,6 +452,10 @@ print_cdtext_info(CdIo_t *p_cdio, track_t i_tracks, track_t i_first_track) {
printf("\nLanguage %d '%s':\n", i, cdtext_lang2str(languages[i]));
print_cdtext_track_info(p_cdtext, 0, "CD-TEXT for Disc:");
+ genre = cdtext_get_genre(p_cdtext);
+ if ( CDTEXT_GENRE_UNUSED != genre)
+ printf("\tGENRE_CODE: %d (%s)\n", genre, cdtext_genre2str(genre));
+
for ( j = i_first_track ; j < i_last_track; j++ ) {
char msg[50];
sprintf(msg, "CD-TEXT for Track %2d:", j);
diff --git a/test/cdtext.right b/test/cdtext.right
index b8e3a02e..6ddeb7f8 100644
--- a/test/cdtext.right
+++ b/test/cdtext.right
@@ -24,6 +24,7 @@ CD-TEXT for Disc:
UPC_EAN: 1234567890123
GENRE: Feline classic music
DISC_ID: 1234567890
+ GENRE_CODE: 5 (Classical)
CD-TEXT for Track 1:
TITLE: Song of Joy
PERFORMER: Felix and The Purrs
@@ -57,6 +58,7 @@ CD-TEXT for Disc:
UPC_EAN: 1234567890123
GENRE: Katzenhafte Klassik
DISC_ID: 1234567890
+ GENRE_CODE: 5 (Classical)
CD-TEXT for Track 1:
TITLE: Lied der Freude
PERFORMER: Felix und Die Schnurrer