mpd/src/tag
Miguel A. Arroyo e3809bd4f0 feat: Add ShowMovement Tag
This commit adds the `SHOWMOVEMENT` [tag](https://picard-docs.musicbrainz.org/en/appendices/tag_mapping.html#show-work-movement-4). Historically, this tag originates from iTunes' MP4, but has since become widely used. It is created by Picard's Classical music [plugins](https://picard-docs.musicbrainz.org/en/variables/variables_classical.html) (such as "Classical Extras" or "Work & Movement").

The reasoning behind this tag is to display Work & Movement titles without redundant information and in a more uniform way. Moreover, it additionally serves as an implicit marker denoting classical music tracks (genre tags aren't sufficient).

If the client so chooses to support this tag, they can display `Work` and `Movement` instead of the track title allowing for cleaner display. Other clients can continue to display the `%title%` as before without any fuss.
2024-07-23 21:09:31 -07:00
..
Aiff.cxx input/InputStream: pass std::span<std::byte> to Read() 2024-05-13 12:28:40 +02:00
Aiff.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
ApeLoader.cxx *: use std::scoped_lock with implicit template parameter 2024-05-23 20:54:49 +02:00
ApeLoader.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
ApeReplayGain.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
ApeReplayGain.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
ApeTag.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
ApeTag.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Builder.cxx *: use std::scoped_lock with implicit template parameter 2024-05-23 20:54:49 +02:00
Builder.hxx tag/Builder: remove unnecessary explicit AddItem() overload 2023-09-06 16:10:31 +02:00
Config.cxx *: let libfmt quote strings 2024-04-16 11:50:18 +02:00
Config.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Fallback.hxx tag/Type: require C++ 2023-03-06 15:28:44 +01:00
FixString.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
FixString.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Format.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Format.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
GenParseName.cxx tag/Type: require C++ 2023-03-06 15:28:44 +01:00
Generic.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Generic.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Handler.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Handler.hxx use [[gnu::...]] attributes 2023-03-06 16:14:15 +01:00
IcyMetaDataParser.cxx tag/IcyMetadataParser: use std::span 2023-12-21 08:42:23 +01:00
IcyMetaDataParser.hxx tag/IcyMetadataParser: use std::span 2023-12-21 08:42:23 +01:00
Id3Load.cxx *: use std::scoped_lock with implicit template parameter 2024-05-23 20:54:49 +02:00
Id3Load.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Id3MixRamp.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Id3MixRamp.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Id3MusicBrainz.cxx Add support of TAG_MUSICBRAINZ_RELEASEGROUPID 2023-07-12 19:43:37 +02:00
Id3MusicBrainz.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Id3Picture.cxx util/ByteOrder: move Packed* classes to separate headers 2023-12-22 18:20:46 +01:00
Id3Picture.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Id3ReplayGain.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Id3ReplayGain.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Id3Scan.cxx use [[gnu::...]] attributes 2023-03-06 16:14:15 +01:00
Id3Scan.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Id3String.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Id3Unique.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Item.hxx db/Interface, ...: forward-declare TagType 2023-03-06 15:25:30 +01:00
Mask.hxx tag/Mask: pass 64 bit integer to constructor, prevent truncation 2024-07-08 15:34:27 +02:00
MixRampInfo.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
MixRampParser.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
MixRampParser.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Names.cxx feat: Add ShowMovement Tag 2024-07-23 21:09:31 -07:00
Names.hxx tag/Type: require C++ 2023-03-06 15:28:44 +01:00
ParseName.cxx tag/Names: convert to C++ 2023-03-06 15:16:33 +01:00
ParseName.hxx tag/Type: require C++ 2023-03-06 15:28:44 +01:00
Pool.cxx util/IntrusiveHashSet: add concept checks to *Operators 2024-04-03 21:27:37 +02:00
Pool.hxx db/Interface, ...: forward-declare TagType 2023-03-06 15:25:30 +01:00
ReplayGainInfo.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
ReplayGainInfo.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
ReplayGainParser.cxx util/NumberParser: rename to CNumberParser 2024-01-04 21:02:45 +01:00
ReplayGainParser.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
RiffFormat.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
RiffId3.cxx input/InputStream: pass std::span<std::byte> to Read() 2024-05-13 12:28:40 +02:00
RiffId3.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Rva2.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Rva2.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Settings.cxx tag/Type: require C++ 2023-03-06 15:28:44 +01:00
Settings.hxx db/Interface, ...: forward-declare TagType 2023-03-06 15:25:30 +01:00
Sort.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Sort.hxx db/Interface, ...: forward-declare TagType 2023-03-06 15:25:30 +01:00
Table.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Table.hxx tag/Type: require C++ 2023-03-06 15:28:44 +01:00
Tag.cxx *: use std::scoped_lock with implicit template parameter 2024-05-23 20:54:49 +02:00
Tag.hxx tag/Type: require C++ 2023-03-06 15:28:44 +01:00
Type.hxx feat: Add ShowMovement Tag 2024-07-23 21:09:31 -07:00
VisitFallback.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
VorbisComment.cxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
VorbisComment.hxx use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
meson.build tag/Names: convert to C++ 2023-03-06 15:16:33 +01:00