diff options
author | Jan Holthuis <jan.holthuis@ruhr-uni-bochum.de> | 2020-03-02 10:22:57 +0100 |
---|---|---|
committer | Jan Holthuis <jan.holthuis@ruhr-uni-bochum.de> | 2020-03-02 10:22:57 +0100 |
commit | fa6dba8f86420a6eb9979b51f8c10629b4b72466 (patch) | |
tree | 0bec26b36e5f9624f4c4dee5b6e5b1ad165261b1 /src/track/cue.cpp | |
parent | 8d3672390c77b1199171517422149f623ab00d6a (diff) | |
parent | 18a134faba514f60a273a9b0aa2f3c9a6a09f214 (diff) |
Merge branch 'master' of github.com:mixxxdj/mixxx into hotcue-rgb-colors
Diffstat (limited to 'src/track/cue.cpp')
-rw-r--r-- | src/track/cue.cpp | 43 |
1 files changed, 38 insertions, 5 deletions
diff --git a/src/track/cue.cpp b/src/track/cue.cpp index 57406665e8..f39f84ceb6 100644 --- a/src/track/cue.cpp +++ b/src/track/cue.cpp @@ -1,10 +1,12 @@ // cue.cpp // Created 10/26/2009 by RJ Ryan (rryan@mit.edu) +#include "track/cue.h" + #include <QMutexLocker> #include <QtDebug> -#include "track/cue.h" +#include "engine/engine.h" #include "util/assert.h" #include "util/color/color.h" @@ -24,7 +26,7 @@ Cue::Cue(TrackId trackId) : m_bDirty(false), m_iId(-1), m_trackId(trackId), - m_type(Cue::Type::Invalid), + m_type(mixxx::CueType::Invalid), m_sampleStartPosition(Cue::kNoPosition), m_sampleEndPosition(Cue::kNoPosition), m_iHotCue(-1), @@ -35,7 +37,7 @@ Cue::Cue(TrackId trackId) Cue::Cue(int id, TrackId trackId, - Cue::Type type, + mixxx::CueType type, double position, double length, int hotCue, @@ -60,6 +62,37 @@ Cue::Cue(int id, m_sampleEndPosition = Cue::kNoPosition; } } + +Cue::Cue(TrackId trackId, mixxx::AudioSignal::SampleRate sampleRate, const mixxx::CueInfo& cueInfo) + : m_bDirty(false), + m_iId(-1), + m_trackId(trackId), + m_type(cueInfo.getType()), + m_sampleStartPosition(Cue::kNoPosition), + m_sampleEndPosition(Cue::kNoPosition), + m_iHotCue(Cue::kNoHotCue), + m_label(cueInfo.getLabel()), + m_color(cueInfo.getColor().value_or(kDefaultCueColor)) { + DEBUG_ASSERT(!m_label.isNull()); + DEBUG_ASSERT(sampleRate.valid()); + + const double sampleRateKhz = sampleRate / 1000.0; + const double millisecsToSamplesFactor = sampleRateKhz * mixxx::kEngineChannelCount; + DEBUG_ASSERT(millisecsToSamplesFactor > 0); + + if (cueInfo.getStartPositionMillis()) { + m_sampleStartPosition = (*cueInfo.getStartPositionMillis()) * millisecsToSamplesFactor; + } + + if (cueInfo.getEndPositionMillis()) { + m_sampleEndPosition = (*cueInfo.getEndPositionMillis()) * millisecsToSamplesFactor; + } + + if (cueInfo.getHotCueNumber()) { + m_iHotCue = *cueInfo.getHotCueNumber(); + } +} + int Cue::getId() const { QMutexLocker lock(&m_mutex); return m_iId; @@ -86,12 +119,12 @@ void Cue::setTrackId(TrackId trackId) { emit updated(); } -Cue::Type Cue::getType() const { +mixxx::CueType Cue::getType() const { QMutexLocker lock(&m_mutex); return m_type; } -void Cue::setType(Cue::Type type) { +void Cue::setType(mixxx::CueType type) { QMutexLocker lock(&m_mutex); m_type = type; m_bDirty = true; |