Add support for the OriginalDate tag

See https://picard.musicbrainz.org/docs/mappings/

This tag is useful when the user would like all releases of the same
album to be sorted next to each other.
This commit is contained in:
Bart Nagel 2017-04-16 16:08:19 -07:00
parent f85d4d28d1
commit ccb4f44caf
5 changed files with 12 additions and 0 deletions

View File

@ -158,6 +158,9 @@ static constexpr struct {
{ TAG_NAME, MPD_TAG_NAME }, { TAG_NAME, MPD_TAG_NAME },
{ TAG_GENRE, MPD_TAG_GENRE }, { TAG_GENRE, MPD_TAG_GENRE },
{ TAG_DATE, MPD_TAG_DATE }, { TAG_DATE, MPD_TAG_DATE },
#if LIBMPDCLIENT_CHECK_VERSION(2,12,0)
{ TAG_ORIGINAL_DATE, MPD_TAG_ORIGINAL_DATE },
#endif
{ TAG_COMPOSER, MPD_TAG_COMPOSER }, { TAG_COMPOSER, MPD_TAG_COMPOSER },
{ TAG_PERFORMER, MPD_TAG_PERFORMER }, { TAG_PERFORMER, MPD_TAG_PERFORMER },
{ TAG_COMMENT, MPD_TAG_COMMENT }, { TAG_COMMENT, MPD_TAG_COMMENT },

View File

@ -395,6 +395,7 @@ HaikuOutput::SendTag(const Tag &tag)
break; break;
case TAG_GENRE: case TAG_GENRE:
case TAG_DATE: case TAG_DATE:
case TAG_ORIGINAL_DATE:
case TAG_PERFORMER: case TAG_PERFORMER:
case TAG_COMMENT: case TAG_COMMENT:
case TAG_DISC: case TAG_DISC:

View File

@ -55,6 +55,10 @@
#define ID3_FRAME_ALBUM_ARTIST "TPE2" #define ID3_FRAME_ALBUM_ARTIST "TPE2"
#endif #endif
#ifndef ID3_FRAME_ORIGINAL_RELEASE_DATE
#define ID3_FRAME_ORIGINAL_RELEASE_DATE "TDOR"
#endif
gcc_pure gcc_pure
static id3_utf8_t * static id3_utf8_t *
tag_id3_getstring(const struct id3_frame *frame, unsigned i) tag_id3_getstring(const struct id3_frame *frame, unsigned i)
@ -317,6 +321,8 @@ scan_id3_tag(struct id3_tag *tag,
handler, handler_ctx); handler, handler_ctx);
tag_id3_import_text(tag, ID3_FRAME_YEAR, TAG_DATE, tag_id3_import_text(tag, ID3_FRAME_YEAR, TAG_DATE,
handler, handler_ctx); handler, handler_ctx);
tag_id3_import_text(tag, ID3_FRAME_ORIGINAL_RELEASE_DATE, TAG_ORIGINAL_DATE,
handler, handler_ctx);
tag_id3_import_text(tag, ID3_FRAME_GENRE, TAG_GENRE, tag_id3_import_text(tag, ID3_FRAME_GENRE, TAG_GENRE,
handler, handler_ctx); handler, handler_ctx);
tag_id3_import_text(tag, ID3_FRAME_COMPOSER, TAG_COMPOSER, tag_id3_import_text(tag, ID3_FRAME_COMPOSER, TAG_COMPOSER,

View File

@ -32,6 +32,7 @@ const char *const tag_item_names[TAG_NUM_OF_ITEM_TYPES] = {
[TAG_NAME] = "Name", [TAG_NAME] = "Name",
[TAG_GENRE] = "Genre", [TAG_GENRE] = "Genre",
[TAG_DATE] = "Date", [TAG_DATE] = "Date",
[TAG_ORIGINAL_DATE] = "OriginalDate",
[TAG_COMPOSER] = "Composer", [TAG_COMPOSER] = "Composer",
[TAG_PERFORMER] = "Performer", [TAG_PERFORMER] = "Performer",
[TAG_COMMENT] = "Comment", [TAG_COMMENT] = "Comment",

View File

@ -46,6 +46,7 @@ enum TagType
TAG_NAME, TAG_NAME,
TAG_GENRE, TAG_GENRE,
TAG_DATE, TAG_DATE,
TAG_ORIGINAL_DATE,
TAG_COMPOSER, TAG_COMPOSER,
TAG_PERFORMER, TAG_PERFORMER,
TAG_COMMENT, TAG_COMMENT,