Add parser for DATE field to libcue and cueprint
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -82,6 +82,7 @@ static char *new_filename = NULL; /* last file in this track */
|
||||
%token <ival> MESSAGE
|
||||
%token <ival> DISC_ID
|
||||
%token <ival> GENRE
|
||||
%token <ival> DATE
|
||||
%token <ival> TOC_INFO1
|
||||
%token <ival> TOC_INFO2
|
||||
%token <ival> UPC_EAN
|
||||
@@ -247,6 +248,7 @@ cdtext_item
|
||||
| MESSAGE
|
||||
| DISC_ID
|
||||
| GENRE
|
||||
| DATE
|
||||
| TOC_INFO1
|
||||
| TOC_INFO2
|
||||
| UPC_EAN
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user