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_GENRE, FORMAT_BINARY, NULL},
{PTI_TOC_INFO1, FORMAT_BINARY, NULL}, {PTI_TOC_INFO1, FORMAT_BINARY, NULL},
{PTI_TOC_INFO2, FORMAT_BINARY, NULL}, {PTI_TOC_INFO2, FORMAT_BINARY, NULL},
{PTI_DATE, FORMAT_BINARY, NULL},
{PTI_RESERVED1, FORMAT_CHAR, NULL}, {PTI_RESERVED1, FORMAT_CHAR, NULL},
{PTI_RESERVED2, FORMAT_CHAR, NULL}, {PTI_RESERVED2, FORMAT_CHAR, NULL},
{PTI_RESERVED3, 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: case PTI_TOC_INFO2:
key = "TOC_INFO1"; key = "TOC_INFO1";
break; break;
case PTI_DATE:
key = "DATE";
break;
case PTI_RESERVED1: case PTI_RESERVED1:
/* reserved */ /* reserved */
break; break;

View File

@@ -24,6 +24,7 @@ enum Pti {
PTI_GENRE, /* (binary) genre identification and genre information */ PTI_GENRE, /* (binary) genre identification and genre information */
PTI_TOC_INFO1, /* (binary) table of contents information */ PTI_TOC_INFO1, /* (binary) table of contents information */
PTI_TOC_INFO2, /* (binary) second 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_RESERVED1, /* reserved */
PTI_RESERVED2, /* reserved */ PTI_RESERVED2, /* reserved */
PTI_RESERVED3, /* 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> MESSAGE
%token <ival> DISC_ID %token <ival> DISC_ID
%token <ival> GENRE %token <ival> GENRE
%token <ival> DATE
%token <ival> TOC_INFO1 %token <ival> TOC_INFO1
%token <ival> TOC_INFO2 %token <ival> TOC_INFO2
%token <ival> UPC_EAN %token <ival> UPC_EAN
@@ -247,6 +248,7 @@ cdtext_item
| MESSAGE | MESSAGE
| DISC_ID | DISC_ID
| GENRE | GENRE
| DATE
| TOC_INFO1 | TOC_INFO1
| TOC_INFO2 | TOC_INFO2
| UPC_EAN | 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; } MESSAGE { BEGIN(NAME); yylval.ival = PTI_MESSAGE; return MESSAGE; }
DISC_ID { BEGIN(NAME); yylval.ival = PTI_DISC_ID; return DISC_ID; } DISC_ID { BEGIN(NAME); yylval.ival = PTI_DISC_ID; return DISC_ID; }
GENRE { BEGIN(NAME); yylval.ival = PTI_GENRE; return GENRE; } 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_INFO1 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO1; return TOC_INFO1; }
TOC_INFO2 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; } TOC_INFO2 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; }
UPC_EAN { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return UPC_EAN; } 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\ no. of tracks: %N\n\
performer: %P\n\ performer: %P\n\
songwriter: %S\n\ songwriter: %S\n\
date: %D\n\
title: %T\n\ title: %T\n\
UPC/EAN: %U\n\ UPC/EAN: %U\n\
" "
@@ -39,6 +40,7 @@ Track %n Information\n\
arranger: %a\n\ arranger: %a\n\
composer: %c\n\ composer: %c\n\
genre: %g\n\ genre: %g\n\
date: %d\n\
ISRC: %i\n\ ISRC: %i\n\
message: %m\n\ message: %m\n\
track number: %n\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); value->sval = cdtext_get(PTI_UPC_ISRC, cdtext);
*c = 's'; *c = 's';
break; break;
case 'D':
value->sval = cdtext_get(PTI_DATE, cdtext);
*c = 's';
break;
default: default:
value->cval = *c; value->cval = *c;
*c = '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); value->sval = cdtext_get(PTI_GENRE, cdtext);
*c = 's'; *c = 's';
break; break;
case 'd':
value->sval = cdtext_get(PTI_DATE, cdtext);
*c = 's';
break;
case 'i': case 'i':
value->sval = track_get_isrc(track); value->sval = track_get_isrc(track);
*c = 's'; *c = 's';