When setting stretchsource playrange, don't clear the ring buffer and seek only if the current seek position is not within the new play range

This commit is contained in:
xenakios 2017-11-17 17:17:31 +02:00
parent 6aa514f52b
commit 98858218d5

View File

@ -480,11 +480,11 @@ void StretchAudioSource::setPlayRange(Range<double> playrange, bool isloop)
m_playrange = { 0.0,1.0 }; m_playrange = { 0.0,1.0 };
else else
m_playrange = playrange; m_playrange = playrange;
m_stretchoutringbuf.clear();
m_stream_end_reached = false; m_stream_end_reached = false;
m_inputfile->setActiveRange(m_playrange); m_inputfile->setActiveRange(m_playrange);
m_inputfile->setLoopEnabled(isloop); m_inputfile->setLoopEnabled(isloop);
m_inputfile->seek(m_playrange.getStart()); if (m_playrange.contains(m_seekpos)==false)
m_inputfile->seek(m_playrange.getStart());
m_seekpos = m_playrange.getStart(); m_seekpos = m_playrange.getStart();
++m_param_change_count; ++m_param_change_count;
} }