summaryrefslogtreecommitdiffstats
path: root/src/engine/enginebuffer.cpp
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2019-07-19 23:10:45 +0200
committerDaniel Schürmann <daschuer@mixxx.org>2019-07-19 23:10:45 +0200
commit02b8ec6c910de7c97758e3c75f9c3fff1435ee9a (patch)
treefc390bc4ad60d9b8781bfc73c57725c02e86497e /src/engine/enginebuffer.cpp
parent006beef4d9339188cb9b70ec74108986ece8f584 (diff)
parent1b07569ab7eacd73d0c325e4e644bc74eba3ef08 (diff)
Merge remote-tracking branch 'upstream/2.2'
Diffstat (limited to 'src/engine/enginebuffer.cpp')
-rw-r--r--src/engine/enginebuffer.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/engine/enginebuffer.cpp b/src/engine/enginebuffer.cpp
index 36e5409d19..030c150b7f 100644
--- a/src/engine/enginebuffer.cpp
+++ b/src/engine/enginebuffer.cpp
@@ -430,7 +430,7 @@ void EngineBuffer::seekCloneBuffer(EngineBuffer* pOtherBuffer) {
// WARNING: This method is not thread safe and must not be called from outside
// the engine callback!
-void EngineBuffer::setNewPlaypos(double newpos, bool adjustingPhase) {
+void EngineBuffer::setNewPlaypos(double newpos) {
//qDebug() << m_group << "engine new pos " << newpos;
m_filepos_play = newpos;
@@ -449,7 +449,7 @@ void EngineBuffer::setNewPlaypos(double newpos, bool adjustingPhase) {
// Must hold the engineLock while using m_engineControls
for (const auto& pControl: qAsConst(m_engineControls)) {
- pControl->notifySeek(m_filepos_play, adjustingPhase);
+ pControl->notifySeek(m_filepos_play);
}
verifyPlay(); // verify or update play button and indicator
@@ -1138,14 +1138,12 @@ void EngineBuffer::processSeek(bool paused) {
seekType |= SEEK_PHASE;
}
- bool adjustingPhase = false;
switch (seekType) {
case SEEK_NONE:
return;
case SEEK_PHASE:
// only adjust phase
position = m_filepos_play;
- adjustingPhase = true;
break;
case SEEK_STANDARD:
if (m_pQuantize->toBool()) {
@@ -1164,10 +1162,12 @@ void EngineBuffer::processSeek(bool paused) {
}
if (!paused && (seekType & SEEK_PHASE)) {
- position = m_pBpmControl->getNearestPositionInPhase(position, true, true);
+ double requestedPosition = position;
+ double syncPosition = m_pBpmControl->getNearestPositionInPhase(position, true, true);
+ position = m_pLoopingControl->getSyncPositionInsideLoop(requestedPosition, syncPosition);
}
if (position != m_filepos_play) {
- setNewPlaypos(position, adjustingPhase);
+ setNewPlaypos(position);
}
}