diff --git a/src/lib/cdtext.c b/src/lib/cdtext.c index 9b512fc..035eb54 100644 --- a/src/lib/cdtext.c +++ b/src/lib/cdtext.c @@ -31,6 +31,7 @@ Cdtext *cdtext_init() {PTI_GENRE, FORMAT_BINARY, NULL}, {PTI_TOC_INFO1, FORMAT_BINARY, NULL}, {PTI_TOC_INFO2, FORMAT_BINARY, NULL}, + {PTI_DATE, FORMAT_BINARY, NULL}, {PTI_RESERVED1, FORMAT_CHAR, NULL}, {PTI_RESERVED2, FORMAT_CHAR, NULL}, {PTI_RESERVED3, FORMAT_CHAR, NULL}, @@ -134,6 +135,9 @@ const char *cdtext_get_key(int pti, int istrack) case PTI_TOC_INFO2: key = "TOC_INFO1"; break; + case PTI_DATE: + key = "DATE"; + break; case PTI_RESERVED1: /* reserved */ break; diff --git a/src/lib/cdtext.h b/src/lib/cdtext.h index 0c485b3..a76c5fb 100644 --- a/src/lib/cdtext.h +++ b/src/lib/cdtext.h @@ -24,6 +24,7 @@ enum Pti { PTI_GENRE, /* (binary) genre identification and genre information */ PTI_TOC_INFO1, /* (binary) table of contents information */ PTI_TOC_INFO2, /* (binary) second table of contents information */ + PTI_DATE, /* date as string of the album */ PTI_RESERVED1, /* reserved */ PTI_RESERVED2, /* reserved */ PTI_RESERVED3, /* reserved */ diff --git a/src/lib/cue_parse.y b/src/lib/cue_parse.y index 0be4d4d..a31dbe6 100644 --- a/src/lib/cue_parse.y +++ b/src/lib/cue_parse.y @@ -82,6 +82,7 @@ static char *new_filename = NULL; /* last file in this track */ %token MESSAGE %token DISC_ID %token GENRE +%token DATE %token TOC_INFO1 %token TOC_INFO2 %token UPC_EAN @@ -247,6 +248,7 @@ cdtext_item | MESSAGE | DISC_ID | GENRE + | DATE | TOC_INFO1 | TOC_INFO2 | UPC_EAN diff --git a/src/lib/cue_scan.l b/src/lib/cue_scan.l index 979503b..37cb551 100644 --- a/src/lib/cue_scan.l +++ b/src/lib/cue_scan.l @@ -76,6 +76,7 @@ ARRANGER { BEGIN(NAME); yylval.ival = PTI_ARRANGER; return ARRANGER; } MESSAGE { BEGIN(NAME); yylval.ival = PTI_MESSAGE; return MESSAGE; } DISC_ID { BEGIN(NAME); yylval.ival = PTI_DISC_ID; return DISC_ID; } GENRE { BEGIN(NAME); yylval.ival = PTI_GENRE; return GENRE; } +DATE { BEGIN(NAME); yylval.ival = PTI_DATE; return DATE; } TOC_INFO1 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO1; return TOC_INFO1; } TOC_INFO2 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; } UPC_EAN { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return UPC_EAN; } diff --git a/src/tools/cueprint.c b/src/tools/cueprint.c index 20256fb..7584c33 100644 --- a/src/tools/cueprint.c +++ b/src/tools/cueprint.c @@ -29,6 +29,7 @@ message: %M\n\ no. of tracks: %N\n\ performer: %P\n\ songwriter: %S\n\ +date: %D\n\ title: %T\n\ UPC/EAN: %U\n\ " @@ -39,6 +40,7 @@ Track %n Information\n\ arranger: %a\n\ composer: %c\n\ genre: %g\n\ +date: %d\n\ ISRC: %i\n\ message: %m\n\ track number: %n\n\ @@ -155,6 +157,10 @@ void disc_field(char *conv, int length, Cd *cd, Value *value) value->sval = cdtext_get(PTI_UPC_ISRC, cdtext); *c = 's'; break; + case 'D': + value->sval = cdtext_get(PTI_DATE, cdtext); + *c = 's'; + break; default: value->cval = *c; *c = 'c'; @@ -191,6 +197,10 @@ void track_field(char *conv, int length, Cd *cd, int trackno, Value *value) value->sval = cdtext_get(PTI_GENRE, cdtext); *c = 's'; break; + case 'd': + value->sval = cdtext_get(PTI_DATE, cdtext); + *c = 's'; + break; case 'i': value->sval = track_get_isrc(track); *c = 's';