diff --git a/NEWS b/NEWS index 2dd126bd4..020606139 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,8 @@ ver 0.21 (not yet released) * protocol - "tagtypes" can be used to hide tags - "find" and "search" can sort +* tags + - new tag "OriginalDate" * output - alsa: non-blocking mode diff --git a/src/db/plugins/ProxyDatabasePlugin.cxx b/src/db/plugins/ProxyDatabasePlugin.cxx index 6c793054a..985fce35a 100644 --- a/src/db/plugins/ProxyDatabasePlugin.cxx +++ b/src/db/plugins/ProxyDatabasePlugin.cxx @@ -158,6 +158,9 @@ static constexpr struct { { TAG_NAME, MPD_TAG_NAME }, { TAG_GENRE, MPD_TAG_GENRE }, { 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_PERFORMER, MPD_TAG_PERFORMER }, { TAG_COMMENT, MPD_TAG_COMMENT }, diff --git a/src/output/plugins/HaikuOutputPlugin.cxx b/src/output/plugins/HaikuOutputPlugin.cxx index 1220f94fe..b8353db9b 100644 --- a/src/output/plugins/HaikuOutputPlugin.cxx +++ b/src/output/plugins/HaikuOutputPlugin.cxx @@ -395,6 +395,7 @@ HaikuOutput::SendTag(const Tag &tag) break; case TAG_GENRE: case TAG_DATE: + case TAG_ORIGINAL_DATE: case TAG_PERFORMER: case TAG_COMMENT: case TAG_DISC: diff --git a/src/tag/Id3Scan.cxx b/src/tag/Id3Scan.cxx index 74433fa47..495676f33 100644 --- a/src/tag/Id3Scan.cxx +++ b/src/tag/Id3Scan.cxx @@ -55,6 +55,10 @@ #define ID3_FRAME_ALBUM_ARTIST "TPE2" #endif +#ifndef ID3_FRAME_ORIGINAL_RELEASE_DATE +#define ID3_FRAME_ORIGINAL_RELEASE_DATE "TDOR" +#endif + gcc_pure static id3_utf8_t * tag_id3_getstring(const struct id3_frame *frame, unsigned i) @@ -317,6 +321,8 @@ scan_id3_tag(struct id3_tag *tag, handler, handler_ctx); tag_id3_import_text(tag, ID3_FRAME_YEAR, TAG_DATE, 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, handler, handler_ctx); tag_id3_import_text(tag, ID3_FRAME_COMPOSER, TAG_COMPOSER, diff --git a/src/tag/Names.c b/src/tag/Names.c index 6e5ebc2bc..7f99877c4 100644 --- a/src/tag/Names.c +++ b/src/tag/Names.c @@ -32,6 +32,7 @@ const char *const tag_item_names[TAG_NUM_OF_ITEM_TYPES] = { [TAG_NAME] = "Name", [TAG_GENRE] = "Genre", [TAG_DATE] = "Date", + [TAG_ORIGINAL_DATE] = "OriginalDate", [TAG_COMPOSER] = "Composer", [TAG_PERFORMER] = "Performer", [TAG_COMMENT] = "Comment", diff --git a/src/tag/Type.h b/src/tag/Type.h index e5a4ef1f7..4aeb24dff 100644 --- a/src/tag/Type.h +++ b/src/tag/Type.h @@ -46,6 +46,7 @@ enum TagType TAG_NAME, TAG_GENRE, TAG_DATE, + TAG_ORIGINAL_DATE, TAG_COMPOSER, TAG_PERFORMER, TAG_COMMENT,