diff options
author | Uwe Klotz <uklotz@mixxx.org> | 2020-03-21 12:02:52 +0100 |
---|---|---|
committer | Uwe Klotz <uklotz@mixxx.org> | 2020-03-30 11:32:18 +0200 |
commit | b384921bfa4400685d729d10db46c2a59ce3752a (patch) | |
tree | 46c2def649f5a6f33072e5d2b24066f937dbb3f0 /src/track/trackmetadata.h | |
parent | 829ec47831e22bb0afae953faaafd59e24aca608 (diff) |
Use new PCM audio property types
Diffstat (limited to 'src/track/trackmetadata.h')
-rw-r--r-- | src/track/trackmetadata.h | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/src/track/trackmetadata.h b/src/track/trackmetadata.h index 9ca165c4be..07bdc30b22 100644 --- a/src/track/trackmetadata.h +++ b/src/track/trackmetadata.h @@ -2,21 +2,27 @@ #include <QDateTime> +#include "audio/types.h" #include "track/albuminfo.h" #include "track/trackinfo.h" - namespace mixxx { +namespace audio { + +class StreamInfo; + +} // namespace audio + class TrackMetadata final { // Audio properties - // - read-only - // - stored file tags - // - adjusted by audio decoder AFTER import from file tags - PROPERTY_SET_BYVAL_GET_BYREF(AudioSource::Bitrate, bitrate, Bitrate) - PROPERTY_SET_BYVAL_GET_BYREF(AudioSignal::ChannelCount, channels, Channels) - PROPERTY_SET_BYVAL_GET_BYREF(Duration, duration, Duration) - PROPERTY_SET_BYVAL_GET_BYREF(AudioSignal::SampleRate, sampleRate, SampleRate) + // - read-only + // - stored in file tags + // - adjusted when opening the audio stream (if available) + PROPERTY_SET_BYVAL_GET_BYREF(audio::ChannelCount, channels, ChannelCount) + PROPERTY_SET_BYVAL_GET_BYREF(audio::SampleRate, sampleRate, SampleRate) + PROPERTY_SET_BYVAL_GET_BYREF(audio::Bitrate, bitrate, Bitrate) + PROPERTY_SET_BYVAL_GET_BYREF(Duration, duration, Duration) // Track properties // - read-write @@ -24,7 +30,7 @@ class TrackMetadata final { PROPERTY_SET_BYVAL_GET_BYREF(AlbumInfo, albumInfo, AlbumInfo) PROPERTY_SET_BYVAL_GET_BYREF(TrackInfo, trackInfo, TrackInfo) -public: + public: TrackMetadata() = default; TrackMetadata(TrackMetadata&&) = default; TrackMetadata(const TrackMetadata&) = default; @@ -33,6 +39,9 @@ public: TrackMetadata& operator=(TrackMetadata&&) = default; TrackMetadata& operator=(const TrackMetadata&) = default; + bool updateAudioPropertiesFromStream( + const audio::StreamInfo& streamInfo); + // Adjusts floating-point values to match their string representation // in file tags to account for rounding errors. void normalizeBeforeExport(); @@ -72,8 +81,7 @@ public: bool operator==(const TrackMetadata& lhs, const TrackMetadata& rhs); -inline -bool operator!=(const TrackMetadata& lhs, const TrackMetadata& rhs) { +inline bool operator!=(const TrackMetadata& lhs, const TrackMetadata& rhs) { return !(lhs == rhs); } |