diff options
author | Daniel Schürmann <daschuer@mixxx.org> | 2020-04-13 12:39:06 +0200 |
---|---|---|
committer | Daniel Schürmann <daschuer@mixxx.org> | 2020-04-21 02:30:08 +0200 |
commit | 0faf8f377803db50917026c4284cf1a165bfbf77 (patch) | |
tree | 44f0b967c348b97a45a16ee4bd9a9975ce5bb6e7 /src/engine/controls/loopingcontrol.cpp | |
parent | 64ff4f40327768b5db660b4d959594d4edad75fe (diff) |
LoopingControl: override trackBeatsUpdated()
Diffstat (limited to 'src/engine/controls/loopingcontrol.cpp')
-rw-r--r-- | src/engine/controls/loopingcontrol.cpp | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/src/engine/controls/loopingcontrol.cpp b/src/engine/controls/loopingcontrol.cpp index 98de547da5..42757b7fc1 100644 --- a/src/engine/controls/loopingcontrol.cpp +++ b/src/engine/controls/loopingcontrol.cpp @@ -872,19 +872,18 @@ bool LoopingControl::isLoopingEnabled() { } void LoopingControl::trackLoaded(TrackPointer pNewTrack) { - if (m_pTrack) { - disconnect(m_pTrack.get(), &Track::beatsUpdated, - this, &LoopingControl::slotUpdatedTrackBeats); + m_pTrack = pNewTrack; + BeatsPointer pBeats; + if (pNewTrack) { + pBeats = pNewTrack->getBeats(); } + trackBeatsUpdated(pBeats); +} +void LoopingControl::trackBeatsUpdated(BeatsPointer pBeats) { clearActiveBeatLoop(); - - if (pNewTrack) { - m_pTrack = pNewTrack; - m_pBeats = m_pTrack->getBeats(); - connect(m_pTrack.get(), &Track::beatsUpdated, - this, &LoopingControl::slotUpdatedTrackBeats); - + m_pBeats = pBeats; + if (m_pBeats) { LoopSamples loopSamples = m_loopSamples.getValue(); if (loopSamples.start != kNoTrigger && loopSamples.end != kNoTrigger) { double loaded_loop_size = findBeatloopSizeForLoop( @@ -893,16 +892,6 @@ void LoopingControl::trackLoaded(TrackPointer pNewTrack) { m_pCOBeatLoopSize->setAndConfirm(loaded_loop_size); } } - } else { - m_pTrack.reset(); - m_pBeats.clear(); - } -} - -void LoopingControl::slotUpdatedTrackBeats() { - TrackPointer pTrack = m_pTrack; - if (pTrack) { - m_pBeats = pTrack->getBeats(); } } |