summaryrefslogtreecommitdiffstats
path: root/src/track/trackmetadata.h
diff options
context:
space:
mode:
authorUwe Klotz <uklotz@mixxx.org>2020-03-21 12:02:52 +0100
committerUwe Klotz <uklotz@mixxx.org>2020-03-30 11:32:18 +0200
commitb384921bfa4400685d729d10db46c2a59ce3752a (patch)
tree46c2def649f5a6f33072e5d2b24066f937dbb3f0 /src/track/trackmetadata.h
parent829ec47831e22bb0afae953faaafd59e24aca608 (diff)
Use new PCM audio property types
Diffstat (limited to 'src/track/trackmetadata.h')
-rw-r--r--src/track/trackmetadata.h30
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);
}