diff options
| -rw-r--r-- | src/qmmp/outputwriter.cpp | 11 | ||||
| -rw-r--r-- | src/qmmp/outputwriter_p.h | 2 |
2 files changed, 6 insertions, 7 deletions
diff --git a/src/qmmp/outputwriter.cpp b/src/qmmp/outputwriter.cpp index 25889796d..1e91fe35f 100644 --- a/src/qmmp/outputwriter.cpp +++ b/src/qmmp/outputwriter.cpp @@ -239,24 +239,23 @@ void OutputWriter::run() while (!done) { m_mutex.lock (); - if(m_pause != m_prev_pause) + if(m_pause != m_paused) { - if(m_pause) + m_paused = m_pause; + if(m_paused) { Visual::clearBuffer(); m_output->suspend(); m_mutex.unlock(); - m_prev_pause = m_pause; continue; } else m_output->resume(); - m_prev_pause = m_pause; } recycler()->mutex()->lock (); done = m_user_stop || (m_finish && recycler()->empty()); - while (!done && (recycler()->empty() || m_pause)) + while (!done && (recycler()->empty() || m_paused)) { recycler()->cond()->wakeOne(); m_mutex.unlock(); @@ -315,7 +314,7 @@ void OutputWriter::run() } output_at = b->samples * m_output->sampleSize(); - while (l < output_at && !m_pause && !m_prev_pause) + while (l < output_at && !m_pause && !m_paused) { m_mutex.lock(); if(m_skip) diff --git a/src/qmmp/outputwriter_p.h b/src/qmmp/outputwriter_p.h index 591cf90a3..36b26639c 100644 --- a/src/qmmp/outputwriter_p.h +++ b/src/qmmp/outputwriter_p.h @@ -110,7 +110,7 @@ private: std::atomic_bool m_pause = ATOMIC_VAR_INIT(false); std::atomic_bool m_muted = ATOMIC_VAR_INIT(false); std::atomic_bool m_finish = ATOMIC_VAR_INIT(false); - bool m_prev_pause = false; + bool m_paused = false; bool m_useEq = false; qint64 m_totalWritten = 0, m_currentMilliseconds = -1; QmmpSettings *m_settings; |
