The Release Track Id uniquely identifies a recording on a release - that is, even if a recording appears twice on a release (meaning that the combination of recording and release id are not enough to figure out which one it is), the release track id will allow differentiating the two.
The tag names are taken from https://musicbrainz.org/doc/MusicBrainz_Picard/Tags/Mapping --- doc/mpd.conf.5 | 3 ++- src/db/plugins/ProxyDatabasePlugin.cxx | 4 ++++ src/output/plugins/RoarOutputPlugin.cxx | 3 +++ src/tag/TagId3.cxx | 2 ++ src/tag/TagNames.c | 1 + src/tag/TagType.h | 1 + 6 files changed, 13 insertions(+), 1 deletion(-) diff --git a/doc/mpd.conf.5 b/doc/mpd.conf.5 index 6e23f7c..5ff8608 100644 --- a/doc/mpd.conf.5 +++ b/doc/mpd.conf.5 @@ -180,7 +180,8 @@ clients. Note that you must recreate (not update) your database for changes to this parameter to take effect. Possible values are artist, album, title, track, name, genre, date, composer, performer, comment, disc, musicbrainz_artistid, musicbrainz_albumid, musicbrainz_albumartistid, -musicbrainz_trackid. Multiple tags may be specified as a comma separated list. +musicbrainz_releasetrackid, musicbrainz_trackid. Multiple tags may be specified +as a comma separated list. An example value is "artist,album,title,track". The special value "none" may be used alone to disable all metadata. The default is to use all known tag types except for comments and those starting with "musicbrainz". diff --git a/src/db/plugins/ProxyDatabasePlugin.cxx b/src/db/plugins/ProxyDatabasePlugin.cxx index 2bd04e3..fba7221 100644 --- a/src/db/plugins/ProxyDatabasePlugin.cxx +++ b/src/db/plugins/ProxyDatabasePlugin.cxx @@ -166,6 +166,10 @@ static constexpr struct { { TAG_MUSICBRAINZ_ALBUMARTISTID, MPD_TAG_MUSICBRAINZ_ALBUMARTISTID }, { TAG_MUSICBRAINZ_TRACKID, MPD_TAG_MUSICBRAINZ_TRACKID }, +#if LIBMPDCLIENT_CHECK_VERSION(2,10,0) + { TAG_MUSICBRAINZ_RELEASETRACKID, + MPD_TAG_MUSICBRAINZ_RELEASETRACKID }, +#endif { TAG_NUM_OF_ITEM_TYPES, MPD_TAG_COUNT } }; diff --git a/src/output/plugins/RoarOutputPlugin.cxx b/src/output/plugins/RoarOutputPlugin.cxx index 04836cc..508e147 100644 --- a/src/output/plugins/RoarOutputPlugin.cxx +++ b/src/output/plugins/RoarOutputPlugin.cxx @@ -349,6 +349,9 @@ roar_tag_convert(TagType type, bool *is_uuid) case TAG_MUSICBRAINZ_TRACKID: *is_uuid = true; return "HASH"; + case TAG_MUSICBRAINZ_RELEASETRACKID: + *is_uuid = true; + return "HASH"; default: return nullptr; diff --git a/src/tag/TagId3.cxx b/src/tag/TagId3.cxx index cbc293f..c179d69 100644 --- a/src/tag/TagId3.cxx +++ b/src/tag/TagId3.cxx @@ -259,6 +259,8 @@ tag_id3_parse_txxx_name(const char *name) { "MusicBrainz Album Artist Id", TAG_MUSICBRAINZ_ALBUMARTISTID }, { "MusicBrainz Track Id", TAG_MUSICBRAINZ_TRACKID }, + { "MusicBrainz Release Track Id", + TAG_MUSICBRAINZ_RELEASETRACKID }, { nullptr, TAG_NUM_OF_ITEM_TYPES } }; diff --git a/src/tag/TagNames.c b/src/tag/TagNames.c index 477ed5f..fb4f5bb 100644 --- a/src/tag/TagNames.c +++ b/src/tag/TagNames.c @@ -41,4 +41,5 @@ const char *const tag_item_names[TAG_NUM_OF_ITEM_TYPES] = { [TAG_MUSICBRAINZ_ALBUMID] = "MUSICBRAINZ_ALBUMID", [TAG_MUSICBRAINZ_ALBUMARTISTID] = "MUSICBRAINZ_ALBUMARTISTID", [TAG_MUSICBRAINZ_TRACKID] = "MUSICBRAINZ_TRACKID", + [TAG_MUSICBRAINZ_RELEASETRACKID] = "MUSICBRAINZ_RELEASETRACKID", }; diff --git a/src/tag/TagType.h b/src/tag/TagType.h index 0981984..5fd07d2 100644 --- a/src/tag/TagType.h +++ b/src/tag/TagType.h @@ -54,6 +54,7 @@ enum TagType TAG_MUSICBRAINZ_ALBUMID, TAG_MUSICBRAINZ_ALBUMARTISTID, TAG_MUSICBRAINZ_TRACKID, + TAG_MUSICBRAINZ_RELEASETRACKID, TAG_NUM_OF_ITEM_TYPES }; -- 2.1.1 _______________________________________________ mpd-devel mailing list [email protected] http://mailman.blarg.de/listinfo/mpd-devel
