diff options
author | Ferran Pujol Camins <ferranpujolcamins@gmail.com> | 2019-11-11 13:19:43 +0100 |
---|---|---|
committer | Ferran Pujol Camins <ferranpujolcamins@gmail.com> | 2019-11-11 13:19:43 +0100 |
commit | a16a2905296c938803196bdf729ab090587f0663 (patch) | |
tree | 82f4dcb737744d20ace4d86ac5dd906324b60a4c /src/track/cue.cpp | |
parent | 03b4f06557d6c25301af69cb96b033b1b825a15d (diff) | |
parent | b23d56e2df37db12fb7860306bd878b2a968f118 (diff) |
Merge branch 'master' into new_colors_impl
Diffstat (limited to 'src/track/cue.cpp')
-rw-r--r-- | src/track/cue.cpp | 76 |
1 files changed, 33 insertions, 43 deletions
diff --git a/src/track/cue.cpp b/src/track/cue.cpp index 828c0958ab..2c34957a2f 100644 --- a/src/track/cue.cpp +++ b/src/track/cue.cpp @@ -23,10 +23,9 @@ Cue::Cue(TrackId trackId) : m_bDirty(false), m_iId(-1), m_trackId(trackId), - m_source(UNKNOWN), - m_type(INVALID), - m_samplePosition(-1.0), - m_length(0.0), + m_type(Cue::Type::Invalid), + m_sampleStartPosition(Cue::kNoPosition), + m_sampleEndPosition(Cue::kNoPosition), m_iHotCue(-1), m_label(kDefaultLabel), m_color(QColor()) { @@ -35,8 +34,7 @@ Cue::Cue(TrackId trackId) Cue::Cue(int id, TrackId trackId, - Cue::CueSource source, - Cue::CueType type, + Cue::Type type, double position, double length, int hotCue, @@ -45,16 +43,22 @@ Cue::Cue(int id, : m_bDirty(false), m_iId(id), m_trackId(trackId), - m_source(source), m_type(type), - m_samplePosition(position), - m_length(length), + m_sampleStartPosition(position), m_iHotCue(hotCue), m_label(label), m_color(color) { DEBUG_ASSERT(!m_label.isNull()); + if (length) { + if (position != Cue::kNoPosition) { + m_sampleEndPosition = position + length; + } else { + m_sampleEndPosition = length; + } + } else { + m_sampleEndPosition = Cue::kNoPosition; + } } - int Cue::getId() const { QMutexLocker lock(&m_mutex); return m_iId; @@ -81,40 +85,35 @@ void Cue::setTrackId(TrackId trackId) { emit(updated()); } -Cue::CueSource Cue::getSource() const { +Cue::Type Cue::getType() const { QMutexLocker lock(&m_mutex); - return m_source; + return m_type; } -void Cue::setSource(CueSource source) { +void Cue::setType(Cue::Type type) { QMutexLocker lock(&m_mutex); - m_source = source; + m_type = type; m_bDirty = true; lock.unlock(); emit(updated()); } -Cue::CueType Cue::getType() const { +double Cue::getPosition() const { QMutexLocker lock(&m_mutex); - return m_type; + return m_sampleStartPosition; } -void Cue::setType(Cue::CueType type) { +void Cue::setStartPosition(double samplePosition) { QMutexLocker lock(&m_mutex); - m_type = type; + m_sampleStartPosition = samplePosition; m_bDirty = true; lock.unlock(); emit(updated()); } -double Cue::getPosition() const { - QMutexLocker lock(&m_mutex); - return m_samplePosition; -} - -void Cue::setPosition(double samplePosition) { +void Cue::setEndPosition(double samplePosition) { QMutexLocker lock(&m_mutex); - m_samplePosition = samplePosition; + m_sampleEndPosition = samplePosition; m_bDirty = true; lock.unlock(); emit(updated()); @@ -122,15 +121,13 @@ void Cue::setPosition(double samplePosition) { double Cue::getLength() const { QMutexLocker lock(&m_mutex); - return m_length; -} - -void Cue::setLength(double length) { - QMutexLocker lock(&m_mutex); - m_length = length; - m_bDirty = true; - lock.unlock(); - emit(updated()); + if (m_sampleEndPosition == Cue::kNoPosition) { + return 0; + } + if (m_sampleStartPosition == Cue::kNoPosition) { + return m_sampleEndPosition; + } + return m_sampleEndPosition - m_sampleStartPosition; } int Cue::getHotCue() const { @@ -187,16 +184,9 @@ void Cue::setDirty(bool dirty) { double Cue::getEndPosition() const { QMutexLocker lock(&m_mutex); - if (m_samplePosition == -1.0) { - return m_length; - } else if (m_length == 0.0) { - return -1.0; - } else { - return m_samplePosition + m_length; - } + return m_sampleEndPosition; } bool operator==(const CuePosition& lhs, const CuePosition& rhs) { - return lhs.getPosition() == rhs.getPosition() && - lhs.getSource() == rhs.getSource(); + return lhs.getPosition() == rhs.getPosition(); } |