summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/sources/soundsourceopus.cpp2
-rw-r--r--src/track/albuminfo.cpp25
-rw-r--r--src/track/albuminfo.h15
-rw-r--r--src/track/track.cpp12
-rw-r--r--src/track/trackinfo.cpp55
-rw-r--r--src/track/trackinfo.h24
-rw-r--r--src/track/trackmetadata.h6
-rw-r--r--src/track/trackmetadatataglib.cpp32
-rw-r--r--src/track/trackmetadatataglib.h6
9 files changed, 89 insertions, 88 deletions
diff --git a/src/sources/soundsourceopus.cpp b/src/sources/soundsourceopus.cpp
index 734dec2e26..4e153c8206 100644
--- a/src/sources/soundsourceopus.cpp
+++ b/src/sources/soundsourceopus.cpp
@@ -161,7 +161,6 @@ SoundSourceOpus::importTrackMetadataAndCoverImage(
trackGain.setRatio(gainRatio);
pTrackMetadata->refTrackInfo().setReplayGain(trackGain);
}
-#ifndef EXCLUDE_EXTRA_METADATA_PROPERTIES
} else if (!l_STag.compare("REPLAYGAIN_ALBUM_GAIN")) {
bool gainRatioValid = false;
double gainRatio = ReplayGain::ratioFromString(l_SPayload, &gainRatioValid);
@@ -170,7 +169,6 @@ SoundSourceOpus::importTrackMetadataAndCoverImage(
albumGain.setRatio(gainRatio);
pTrackMetadata->refAlbumInfo().setReplayGain(albumGain);
}
-#endif // EXCLUDE_EXTRA_METADATA_PROPERTIES
}
}
#endif // TAGLIB_HAS_OPUSFILE
diff --git a/src/track/albuminfo.cpp b/src/track/albuminfo.cpp
index e314a63fa3..43cf3fc4c5 100644
--- a/src/track/albuminfo.cpp
+++ b/src/track/albuminfo.cpp
@@ -3,24 +3,29 @@
namespace mixxx {
-// TODO(XXX): Add the commented out properties to the Mixxx library
+void AlbumInfo::resetUnsupportedValues() {
+ setMusicBrainzArtistId(QString());
+ setMusicBrainzReleaseId(QString());
+ setMusicBrainzReleaseGroupId(QString());
+ setReplayGain(ReplayGain());
+}
+
bool operator==(const AlbumInfo& lhs, const AlbumInfo& rhs) {
return (lhs.getArtist() == rhs.getArtist()) &&
- //(lhs.getMusicBrainzArtistId() == rhs.getMusicBrainzArtistId()) &&
- //(lhs.getMusicBrainzReleaseId() == rhs.getMusicBrainzReleaseId()) &&
- //(lhs.getMusicBrainzReleaseGroupId() == rhs.getMusicBrainzReleaseGroupId()) &&
- //(lhs.getReplayGain() == rhs.getReplayGain()) &&
+ (lhs.getMusicBrainzArtistId() == rhs.getMusicBrainzArtistId()) &&
+ (lhs.getMusicBrainzReleaseId() == rhs.getMusicBrainzReleaseId()) &&
+ (lhs.getMusicBrainzReleaseGroupId() == rhs.getMusicBrainzReleaseGroupId()) &&
+ (lhs.getReplayGain() == rhs.getReplayGain()) &&
(lhs.getTitle() == rhs.getTitle());
}
-// TODO(XXX): Add the commented out properties to the Mixxx library
QDebug operator<<(QDebug dbg, const AlbumInfo& arg) {
dbg << '{';
arg.dbgArtist(dbg);
- //arg.dbgMusicBrainzArtistId(dbg);
- //arg.dbgMusicBrainzReleaseId(dbg);
- //arg.dbgMusicBrainzReleaseGroupId(dbg);
- //arg.dbgReplayGain(dbg);
+ arg.dbgMusicBrainzArtistId(dbg);
+ arg.dbgMusicBrainzReleaseId(dbg);
+ arg.dbgMusicBrainzReleaseGroupId(dbg);
+ arg.dbgReplayGain(dbg);
arg.dbgTitle(dbg);
dbg << '}';
return dbg;
diff --git a/src/track/albuminfo.h b/src/track/albuminfo.h
index d6b66cf3a9..f0e4ce65c1 100644
--- a/src/track/albuminfo.h
+++ b/src/track/albuminfo.h
@@ -12,15 +12,13 @@ namespace mixxx {
class AlbumInfo final {
// Album properties (in alphabetical order)
- // TODO(XXX): Add the commented out properties to the Mixxx library
PROPERTY_SET_BYVAL_GET_BYREF(QString, artist, Artist)
- //PROPERTY_SET_BYVAL_GET_BYREF(ReplayGain, replayGain, ReplayGain)
- //PROPERTY_SET_BYVAL_GET_BYREF(QUuid, musicBrainzArtistId, MusicBrainzArtistId)
- //PROPERTY_SET_BYVAL_GET_BYREF(QUuid, musicBrainzReleaseId, MusicBrainzReleaseId)
- //PROPERTY_SET_BYVAL_GET_BYREF(QUuid, musicBrainzReleaseGroupId, MusicBrainzReleaseGroupId)
+ PROPERTY_SET_BYVAL_GET_BYREF(QUuid, musicBrainzArtistId, MusicBrainzArtistId)
+ PROPERTY_SET_BYVAL_GET_BYREF(QUuid, musicBrainzReleaseId, MusicBrainzReleaseId)
+ PROPERTY_SET_BYVAL_GET_BYREF(QUuid, musicBrainzReleaseGroupId, MusicBrainzReleaseGroupId)
+ PROPERTY_SET_BYVAL_GET_BYREF(ReplayGain, replayGain, ReplayGain)
PROPERTY_SET_BYVAL_GET_BYREF(QString, title, Title)
-
public:
AlbumInfo() = default;
AlbumInfo(AlbumInfo&&) = default;
@@ -30,10 +28,13 @@ public:
AlbumInfo& operator=(AlbumInfo&&) = default;
AlbumInfo& operator=(const AlbumInfo&) = default;
+ // TODO(XXX): Remove after all new fields have been added to the library
+ void resetUnsupportedValues();
+
// Adjusts floating-point values to match their string representation
// in file tags to account for rounding errors.
void normalizeBeforeExport() {
- //refReplayGain().normalizeBeforeExport();
+ refReplayGain().normalizeBeforeExport();
}
};
diff --git a/src/track/track.cpp b/src/track/track.cpp
index b5c8c23de6..ca67185f35 100644
--- a/src/track/track.cpp
+++ b/src/track/track.cpp
@@ -935,6 +935,9 @@ Track::ExportMetadataResult Track::exportMetadata(
// be called after all references to the object have been dropped.
// But it doesn't hurt much, so let's play it safe ;)
QMutexLocker lock(&m_qMutex);
+ // Discard the values of all currently unsupported fields that are
+ // not stored in the library, yet
+ m_record.refMetadata().resetUnsupportedValues();
// Normalize metadata before export to adjust the precision of
// floating values, ...
m_record.refMetadata().normalizeBeforeExport();
@@ -960,14 +963,19 @@ Track::ExportMetadataResult Track::exportMetadata(
mixxx::TrackMetadata importedFromFile;
if ((pMetadataSource->importTrackMetadataAndCoverImage(&importedFromFile, nullptr).first ==
mixxx::MetadataSource::ImportResult::Succeeded)) {
+ // Discard the values of all currently unsupported fields that are
+ // not stored in the library, yet
+ importedFromFile.resetUnsupportedValues();
// Before comparison: Adjust imported bpm values that might be imprecise,
// e.g. integer values from ID3v2
auto actualBpm =
getActualBpm(importedFromFile.getTrackInfo().getBpm(), m_pBeats);
- // Account for rounding errors during export
+ // ...account for bpm rounding errors during export...
actualBpm.normalizeBeforeExport();
- // Replace the imported bpm value
+ // ...and replace the imported bpm value
importedFromFile.refTrackInfo().setBpm(actualBpm);
+ // Finally the current and the just imported metadata can be checked for
+ // differences that will affect the file tags
if (!m_record.getMetadata().hasBeenModifiedAfterImport(importedFromFile)) {
kLogger.debug()
<< "Skip exporting of unmodified track metadata:"
diff --git a/src/track/trackinfo.cpp b/src/track/trackinfo.cpp
index 71d9b041ef..c4bb7641ca 100644
--- a/src/track/trackinfo.cpp
+++ b/src/track/trackinfo.cpp
@@ -3,53 +3,64 @@
namespace mixxx {
-// TODO(XXX): Add the commented out properties to the Mixxx library
+void TrackInfo::resetUnsupportedValues() {
+ setConductor(QString());
+ setISRC(QString());
+ setLanguage(QString());
+ setLyricist(QString());
+ setMood(QString());
+ setMusicBrainzArtistId(QString());
+ setMusicBrainzReleaseId(QString());
+ setRecordLabel(QString());
+ setRemixer(QString());
+ setSubtitle(QString());
+}
+
bool operator==(const TrackInfo& lhs, const TrackInfo& rhs) {
return (lhs.getArtist() == rhs.getArtist()) &&
(lhs.getBpm() == rhs.getBpm()) &&
(lhs.getComment() == rhs.getComment()) &&
(lhs.getComposer() == rhs.getComposer()) &&
- //(lhs.getConductor() == rhs.getConductor()) &&
+ (lhs.getConductor() == rhs.getConductor()) &&
(lhs.getGrouping() == rhs.getGrouping()) &&
(lhs.getGenre() == rhs.getGenre()) &&
- //(lhs.getISRC() == rhs.getISRC()) &&
+ (lhs.getISRC() == rhs.getISRC()) &&
(lhs.getKey() == rhs.getKey()) &&
- //(lhs.getLanguage() == rhs.getLanguage()) &&
- //(lhs.getLyricist() == rhs.getLyricist()) &&
- //(lhs.getMood() == rhs.getMood()) &&
- //(lhs.getMusicBrainzArtistId() == rhs.getMusicBrainzArtistId()) &&
- //(lhs.getMusicBrainzReleaseId() == rhs.getMusicBrainzReleaseId()) &&
- //(lhs.getRecordLabel() == rhs.getRecordLabel()) &&
- //(lhs.getRemixer() == rhs.getRemixer()) &&
+ (lhs.getLanguage() == rhs.getLanguage()) &&
+ (lhs.getLyricist() == rhs.getLyricist()) &&
+ (lhs.getMood() == rhs.getMood()) &&
+ (lhs.getMusicBrainzArtistId() == rhs.getMusicBrainzArtistId()) &&
+ (lhs.getMusicBrainzReleaseId() == rhs.getMusicBrainzReleaseId()) &&
+ (lhs.getRecordLabel() == rhs.getRecordLabel()) &&
+ (lhs.getRemixer() == rhs.getRemixer()) &&
(lhs.getReplayGain() == rhs.getReplayGain()) &&
- //(lhs.getSubtitle() == rhs.getSubtitle()) &&
+ (lhs.getSubtitle() == rhs.getSubtitle()) &&
(lhs.getTitle() == rhs.getTitle()) &&
(lhs.getTrackNumber() == rhs.getTrackNumber()) &&
(lhs.getTrackTotal() == rhs.getTrackTotal()) &&
(lhs.getYear() == rhs.getYear());
}
-// TODO(XXX): Add the commented out properties to the Mixxx library
QDebug operator<<(QDebug dbg, const TrackInfo& arg) {
dbg << '{';
arg.dbgArtist(dbg);
arg.dbgBpm(dbg);
arg.dbgComment(dbg);
arg.dbgComposer(dbg);
- //arg.dbgConductor(dbg);
+ arg.dbgConductor(dbg);
arg.dbgGrouping(dbg);
arg.dbgGenre(dbg);
- //arg.dbgISRC(dbg);
+ arg.dbgISRC(dbg);
arg.dbgKey(dbg);
- //arg.dbgLanguage(dbg);
- //arg.dbgLyricist(dbg);
- //arg.dbgMood(dbg);
- //arg.dbgMusicBrainzArtistId(dbg);
- //arg.dbgMusicBrainzReleaseId(dbg);
- //arg.dbgRecordLabel(dbg);
- //arg.dbgRemixer(dbg);
+ arg.dbgLanguage(dbg);
+ arg.dbgLyricist(dbg);
+ arg.dbgMood(dbg);
+ arg.dbgMusicBrainzArtistId(dbg);
+ arg.dbgMusicBrainzReleaseId(dbg);
+ arg.dbgRecordLabel(dbg);
+ arg.dbgRemixer(dbg);
arg.dbgReplayGain(dbg);
- //arg.dbgSubtitle(dbg);
+ arg.dbgSubtitle(dbg);
arg.dbgTitle(dbg);
arg.dbgTrackNumber(dbg);
arg.dbgTrackTotal(dbg);
diff --git a/src/track/trackinfo.h b/src/track/trackinfo.h
index 9e140389d2..6304d78434 100644
--- a/src/track/trackinfo.h
+++ b/src/track/trackinfo.h
@@ -16,25 +16,24 @@ namespace mixxx {
class TrackInfo final {
// Track properties (in alphabetical order)
- // TODO(XXX): Add the commented out properties to the Mixxx library
PROPERTY_SET_BYVAL_GET_BYREF(QString, artist, Artist)
PROPERTY_SET_BYVAL_GET_BYREF(Bpm, bpm, Bpm)
PROPERTY_SET_BYVAL_GET_BYREF(QString, comment, Comment)
PROPERTY_SET_BYVAL_GET_BYREF(QString, composer, Composer)
- //PROPERTY_SET_BYVAL_GET_BYREF(QString, conductor, Conductor)
+ PROPERTY_SET_BYVAL_GET_BYREF(QString, conductor, Conductor)
PROPERTY_SET_BYVAL_GET_BYREF(QString, genre, Genre)
PROPERTY_SET_BYVAL_GET_BYREF(QString, grouping, Grouping)
PROPERTY_SET_BYVAL_GET_BYREF(QString, key, Key)
- //PROPERTY_SET_BYVAL_GET_BYREF(QString, isrc, ISRC)
- //PROPERTY_SET_BYVAL_GET_BYREF(QString, language, Language)
- //PROPERTY_SET_BYVAL_GET_BYREF(QString, lyricist, Lyricist)
- //PROPERTY_SET_BYVAL_GET_BYREF(QString, mood, Mood)
- //PROPERTY_SET_BYVAL_GET_BYREF(QUuid, musicBrainzArtistId, MusicBrainzArtistId)
- //PROPERTY_SET_BYVAL_GET_BYREF(QUuid, musicBrainzReleaseId, MusicBrainzReleaseId)
- //PROPERTY_SET_BYVAL_GET_BYREF(QString, recordLabel, RecordLabel)
- //PROPERTY_SET_BYVAL_GET_BYREF(QString, remixer, Remixer)
+ PROPERTY_SET_BYVAL_GET_BYREF(QString, isrc, ISRC)
+ PROPERTY_SET_BYVAL_GET_BYREF(QString, language, Language)
+ PROPERTY_SET_BYVAL_GET_BYREF(QString, lyricist, Lyricist)
+ PROPERTY_SET_BYVAL_GET_BYREF(QString, mood, Mood)
+ PROPERTY_SET_BYVAL_GET_BYREF(QUuid, musicBrainzArtistId, MusicBrainzArtistId)
+ PROPERTY_SET_BYVAL_GET_BYREF(QUuid, musicBrainzReleaseId, MusicBrainzReleaseId)
+ PROPERTY_SET_BYVAL_GET_BYREF(QString, recordLabel, RecordLabel)
+ PROPERTY_SET_BYVAL_GET_BYREF(QString, remixer, Remixer)
PROPERTY_SET_BYVAL_GET_BYREF(ReplayGain, replayGain, ReplayGain)
- //PROPERTY_SET_BYVAL_GET_BYREF(QString, subtitle, Subtitle)
+ PROPERTY_SET_BYVAL_GET_BYREF(QString, subtitle, Subtitle)
PROPERTY_SET_BYVAL_GET_BYREF(QString, title, Title)
PROPERTY_SET_BYVAL_GET_BYREF(QString, trackNumber, TrackNumber)
PROPERTY_SET_BYVAL_GET_BYREF(QString, trackTotal, TrackTotal)
@@ -49,6 +48,9 @@ public:
TrackInfo& operator=(TrackInfo&&) = default;
TrackInfo& operator=(const TrackInfo&) = default;
+ // TODO(XXX): Remove after all new fields have been added to the library
+ void resetUnsupportedValues();
+
// Adjusts floating-point values to match their string representation
// in file tags to account for rounding errors.
void normalizeBeforeExport() {
diff --git a/src/track/trackmetadata.h b/src/track/trackmetadata.h
index f17743da3b..956b6c7107 100644
--- a/src/track/trackmetadata.h
+++ b/src/track/trackmetadata.h
@@ -33,6 +33,12 @@ public:
TrackMetadata& operator=(TrackMetadata&&) = default;
TrackMetadata& operator=(const TrackMetadata&) = default;
+ // TODO(XXX): Remove after all new fields have been added to the library
+ void resetUnsupportedValues() {
+ refAlbumInfo().resetUnsupportedValues();
+ refTrackInfo().resetUnsupportedValues();
+ }
+
// Adjusts floating-point values to match their string representation
// in file tags to account for rounding errors.
void normalizeBeforeExport() {
diff --git a/src/track/trackmetadatataglib.cpp b/src/track/trackmetadatataglib.cpp
index 059ddb82be..e89a8966cc 100644
--- a/src/track/trackmetadatataglib.cpp
+++ b/src/track/trackmetadatataglib.cpp
@@ -313,8 +313,6 @@ bool parseTrackPeak(
return isPeakValid;
}
-#ifndef EXCLUDE_EXTRA_METADATA_PROPERTIES
-
inline
bool hasAlbumGain(const TrackMetadata& trackMetadata) {
return trackMetadata.getAlbumInfo().getReplayGain().hasRatio();
@@ -361,8 +359,6 @@ bool parseAlbumPeak(
return isPeakValid;
}
-#endif // EXCLUDE_EXTRA_METADATA_PROPERTIES
-
void readAudioProperties(
TrackMetadata* pTrackMetadata,
const TagLib::AudioProperties& audioProperties) {
@@ -604,7 +600,6 @@ void writeID3v2TextIdentificationFrame(
}
}
-#ifndef EXCLUDE_EXTRA_METADATA_PROPERTIES
bool writeID3v2TextIdentificationFrameStringIfNotNull(
TagLib::ID3v2::Tag* pTag,
const TagLib::ByteVector &id,
@@ -616,7 +611,6 @@ bool writeID3v2TextIdentificationFrameStringIfNotNull(
return true;
}
}
-#endif
void writeID3v2CommentsFrame(
TagLib::ID3v2::Tag* pTag,
@@ -1201,7 +1195,6 @@ void importTrackMetadataFromID3v2Tag(TrackMetadata* pTrackMetadata,
parseTrackPeak(pTrackMetadata, trackPeak);
}
-#ifndef EXCLUDE_EXTRA_METADATA_PROPERTIES
QString albumGain =
readFirstUserTextIdentificationFrame(tag, "REPLAYGAIN_ALBUM_GAIN");
if (!albumGain.isEmpty()) {
@@ -1273,7 +1266,6 @@ void importTrackMetadataFromID3v2Tag(TrackMetadata* pTrackMetadata,
if (!subtitleFrame.isEmpty()) {
pTrackMetadata->refTrackInfo().setSubtitle(toQStringFirstNotEmpty(subtitleFrame));
}
-#endif // EXCLUDE_EXTRA_METADATA_PROPERTIES
}
void importTrackMetadataFromAPETag(TrackMetadata* pTrackMetadata, const TagLib::APE::Tag& tag) {
@@ -1332,7 +1324,6 @@ void importTrackMetadataFromAPETag(TrackMetadata* pTrackMetadata, const TagLib::
parseTrackPeak(pTrackMetadata, trackPeak);
}
-#ifndef EXCLUDE_EXTRA_METADATA_PROPERTIES
QString albumGain;
if (readAPEItem(tag, "REPLAYGAIN_ALBUM_GAIN", &albumGain)) {
parseTrackGain(pTrackMetadata, albumGain);
@@ -1395,7 +1386,6 @@ void importTrackMetadataFromAPETag(TrackMetadata* pTrackMetadata, const TagLib::
if (readAPEItem(tag, "Subtitle", &subtitle)) {
pTrackMetadata->refTrackInfo().setSubtitle(subtitle);
}
-#endif // EXCLUDE_EXTRA_METADATA_PROPERTIES
}
void importTrackMetadataFromVorbisCommentTag(TrackMetadata* pTrackMetadata,
@@ -1497,7 +1487,6 @@ void importTrackMetadataFromVorbisCommentTag(TrackMetadata* pTrackMetadata,
parseTrackPeak(pTrackMetadata, trackPeak);
}
-#ifndef EXCLUDE_EXTRA_METADATA_PROPERTIES
QString albumGain;
if (readXiphCommentField(tag, "REPLAYGAIN_ALBUM_GAIN", &albumGain)) {
parseAlbumGain(pTrackMetadata, albumGain);
@@ -1560,7 +1549,6 @@ void importTrackMetadataFromVorbisCommentTag(TrackMetadata* pTrackMetadata,
if (readXiphCommentField(tag, "SUBTITLE", &subtitle)) {
pTrackMetadata->refTrackInfo().setSubtitle(subtitle);
}
-#endif // EXCLUDE_EXTRA_METADATA_PROPERTIES
}
void importTrackMetadataFromMP4Tag(TrackMetadata* pTrackMetadata, const TagLib::MP4::Tag& tag) {
@@ -1634,7 +1622,6 @@ void importTrackMetadataFromMP4Tag(TrackMetadata* pTrackMetadata, const TagLib::
parseTrackPeak(pTrackMetadata, trackPeak);
}
-#ifndef EXCLUDE_EXTRA_METADATA_PROPERTIES
QString albumGain;
if (readMP4Atom(tag, "----:com.apple.iTunes:replaygain_album_gain", &albumGain)) {
parseAlbumGain(pTrackMetadata, albumGain);
@@ -1697,7 +1684,6 @@ void importTrackMetadataFromMP4Tag(TrackMetadata* pTrackMetadata, const TagLib::
if (readMP4Atom(tag, "----:com.apple.iTunes:SUBTITLE", &subtitle)) {
pTrackMetadata->refTrackInfo().setSubtitle(subtitle);
}
-#endif // EXCLUDE_EXTRA_METADATA_PROPERTIES
}
void importTrackMetadataFromRIFFTag(TrackMetadata* pTrackMetadata, const TagLib::RIFF::Info::Tag& tag) {
@@ -1854,10 +1840,10 @@ bool exportTrackMetadataIntoID3v2Tag(TagLib::ID3v2::Tag* pTag,
true);
}
-#ifndef EXCLUDE_EXTRA_METADATA_PROPERTIES
// TODO(XXX): The following tags are currently not stored in the
// Mixxx library. Only write properties that have non-null values
// to prevent deleting existing tags!
+
if (hasAlbumGain(trackMetadata)) {
writeID3v2UserTextIdentificationFrame(
pTag,
@@ -1909,9 +1895,6 @@ bool exportTrackMetadataIntoID3v2Tag(TagLib::ID3v2::Tag* pTag,
false);
}
- // TODO(XXX): The following tags are currently not stored in the
- // Mixxx library. Only write properties that have non-null values
- // to prevent deleting existing tags!
writeID3v2TextIdentificationFrameStringIfNotNull(
pTag,
"TPE3",
@@ -1946,7 +1929,6 @@ bool exportTrackMetadataIntoID3v2Tag(TagLib::ID3v2::Tag* pTag,
pTag,
"TIT3",
trackMetadata.getTrackInfo().getSubtitle());
-#endif // EXCLUDE_EXTRA_METADATA_PROPERTIES
return true;
}
@@ -1992,10 +1974,10 @@ bool exportTrackMetadataIntoAPETag(TagLib::APE::Tag* pTag, const TrackMetadata&
toTagLibString(formatTrackPeak(trackMetadata)));
}
-#ifndef EXCLUDE_EXTRA_METADATA_PROPERTIES
// TODO(XXX): The following tags are currently not stored in the
// Mixxx library. Only write properties that have non-null values
// to prevent deleting existing tags!
+
if (hasAlbumGain(trackMetadata)) {
writeAPEItem(pTag, "REPLAYGAIN_ALBUM_GAIN",
toTagLibString(formatAlbumGain(trackMetadata)));
@@ -2026,9 +2008,6 @@ bool exportTrackMetadataIntoAPETag(TagLib::APE::Tag* pTag, const TrackMetadata&
toTagLibString(trackMetadata.getAlbumInfo().getMusicBrainzReleaseGroupId().toString()));
}
- // TODO(XXX): The following tags are currently not stored in the
- // Mixxx library. Only write properties that have non-null values
- // to prevent deleting existing tags!
if (!trackMetadata.getTrackInfo().getConductor().isNull()) {
writeAPEItem(pTag, "Conductor",
toTagLibString(trackMetadata.getTrackInfo().getConductor()));
@@ -2061,7 +2040,6 @@ bool exportTrackMetadataIntoAPETag(TagLib::APE::Tag* pTag, const TrackMetadata&
writeAPEItem(pTag, "Subtitle",
toTagLibString(trackMetadata.getTrackInfo().getSubtitle()));
}
-#endif // EXCLUDE_EXTRA_METADATA_PROPERTIES
return true;
}
@@ -2145,10 +2123,10 @@ bool exportTrackMetadataIntoXiphComment(TagLib::Ogg::XiphComment* pTag,
toTagLibString(formatTrackPeak(trackMetadata)));
}
-#ifndef EXCLUDE_EXTRA_METADATA_PROPERTIES
// TODO(XXX): The following tags are currently not stored in the
// Mixxx library. Only write properties that have non-null values
// to prevent deleting existing tags!
+
if (hasAlbumGain(trackMetadata)) {
writeXiphCommentField(pTag, "REPLAYGAIN_ALBUM_GAIN",
toTagLibString(formatAlbumGain(trackMetadata)));
@@ -2209,7 +2187,6 @@ bool exportTrackMetadataIntoXiphComment(TagLib::Ogg::XiphComment* pTag,
writeXiphCommentField(pTag, "SUBTITLE",
toTagLibString(trackMetadata.getTrackInfo().getSubtitle()));
}
-#endif // EXCLUDE_EXTRA_METADATA_PROPERTIES
return true;
}
@@ -2279,10 +2256,10 @@ bool exportTrackMetadataIntoMP4Tag(TagLib::MP4::Tag* pTag, const TrackMetadata&
toTagLibString(formatTrackPeak(trackMetadata)));
}
-#ifndef EXCLUDE_EXTRA_METADATA_PROPERTIES
// TODO(XXX): The following tags are currently not stored in the
// Mixxx library. Only write properties that have non-null values
// to prevent deleting existing tags!
+
if (hasAlbumGain(trackMetadata)) {
writeMP4Atom(pTag, "----:com.apple.iTunes:replaygain_album_gain",
toTagLibString(formatAlbumGain(trackMetadata)));
@@ -2343,7 +2320,6 @@ bool exportTrackMetadataIntoMP4Tag(TagLib::MP4::Tag* pTag, const TrackMetadata&
writeMP4Atom(pTag, "----:com.apple.iTunes:SUBTITLE",
toTagLibString(trackMetadata.getTrackInfo().getSubtitle()));
}
-#endif // EXCLUDE_EXTRA_METADATA_PROPERTIES
return true;
}
diff --git a/src/track/trackmetadatataglib.h b/src/track/trackmetadatataglib.h
index 1535eaa687..f1ec48a4ee 100644
--- a/src/track/trackmetadatataglib.h
+++ b/src/track/trackmetadatataglib.h
@@ -22,12 +22,6 @@
#define TAGLIB_HAS_AIFF_HAS_ID3V2TAG \
(TAGLIB_MAJOR_VERSION > 1) || ((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION >= 10))
-// TODO(XXX): Add those fields to the Mixxx library and remove the #define
-// If those properties are imported but not stored in the database
-// Mixxx would detect metadata as modified and export it again although
-// nothing has changed.
-#define EXCLUDE_EXTRA_METADATA_PROPERTIES
-
#include <QImage>
#include "track/trackmetadata.h"