Add parser for DATE field to libcue and cueprint

This commit is contained in:
2020-12-12 12:21:30 +01:00
parent 76dab58db7
commit a59b8f1847
5 changed files with 18 additions and 0 deletions

View File

@@ -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;

View File

@@ -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 */

View File

@@ -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

View File

@@ -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; }

View File

@@ -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';