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:
		@@ -480,10 +480,10 @@ 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);
 | 
				
			||||||
 | 
						if (m_playrange.contains(m_seekpos)==false)
 | 
				
			||||||
		m_inputfile->seek(m_playrange.getStart());
 | 
							m_inputfile->seek(m_playrange.getStart());
 | 
				
			||||||
	m_seekpos = m_playrange.getStart();
 | 
						m_seekpos = m_playrange.getStart();
 | 
				
			||||||
	++m_param_change_count;
 | 
						++m_param_change_count;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user