aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-08-26 19:46:19 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-08-26 19:46:19 +0000
commit94de485531c7bbb04f577c9ad0e9e0dbb8a55ae6 (patch)
treeaefb20b55128e2028e4c9dce349a242f3d69c10e /src
parenta99c6a4984639286f5cfca79f0140e4c466d8ba0 (diff)
downloadqmmp-94de485531c7bbb04f577c9ad0e9e0dbb8a55ae6.tar.gz
qmmp-94de485531c7bbb04f577c9ad0e9e0dbb8a55ae6.tar.bz2
qmmp-94de485531c7bbb04f577c9ad0e9e0dbb8a55ae6.zip
lock mutext before reset of elapsed time counter
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5497 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/qmmp/qmmpaudioengine.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/qmmp/qmmpaudioengine.cpp b/src/qmmp/qmmpaudioengine.cpp
index d34d42b51..6d76ff591 100644
--- a/src/qmmp/qmmpaudioengine.cpp
+++ b/src/qmmp/qmmpaudioengine.cpp
@@ -412,12 +412,14 @@ void QmmpAudioEngine::run()
StateHandler::instance()->sendFinished();
StateHandler::instance()->dispatch(Qmmp::Stopped); //fake stop/start cycle
StateHandler::instance()->dispatch(Qmmp::Buffering);
- StateHandler::instance()->dispatch(Qmmp::Playing);
m_decoder->next();
StateHandler::instance()->dispatch(m_decoder->totalTime());
m_replayGain->setReplayGainInfo(m_decoder->replayGainInfo(), m_decoder->hasHeadroom());
+ m_output->mutex()->lock();
m_output->seek(0); //reset counter
+ m_output->mutex()->unlock();
addOffset(); //offset
+ StateHandler::instance()->dispatch(Qmmp::Playing);
mutex()->unlock();
continue;
}
@@ -435,9 +437,11 @@ void QmmpAudioEngine::run()
StateHandler::instance()->sendFinished();
StateHandler::instance()->dispatch(Qmmp::Stopped); //fake stop/start cycle
StateHandler::instance()->dispatch(Qmmp::Buffering);
- StateHandler::instance()->dispatch(Qmmp::Playing);
StateHandler::instance()->dispatch(m_decoder->totalTime());
+ m_output->mutex()->lock();
m_output->seek(0); //reset counter
+ m_output->mutex()->unlock();
+ StateHandler::instance()->dispatch(Qmmp::Playing);
mutex()->unlock();
sendMetaData();
addOffset(); //offset