Implemented a proper equality operator for the processparameters. Also tried something a bit too smart with it, left commented out in the code...

This commit is contained in:
xenakios
2017-11-15 02:06:36 +02:00
parent d442e2eaea
commit c34961995d
2 changed files with 76 additions and 6 deletions

View File

@ -401,7 +401,7 @@ void StretchAudioSource::setRate(double rate)
void StretchAudioSource::setProcessParameters(ProcessParameters * pars)
{
if (memcmp(pars, &m_ppar, sizeof(ProcessParameters)) == 0)
if (*pars == m_ppar)
return;
std::lock_guard<std::mutex> locker(m_mutex);
m_ppar = *pars;
@ -467,9 +467,9 @@ void StretchAudioSource::setOnsetDetection(double x)
void StretchAudioSource::setPlayRange(Range<double> playrange, bool isloop)
{
std::lock_guard<std::mutex> locker(m_mutex);
if (m_playrange.isEmpty()==false && playrange == m_playrange)
if (m_playrange.isEmpty() == false && playrange == m_playrange)
return;
std::lock_guard<std::mutex> locker(m_mutex);
if (playrange.isEmpty())
m_playrange = { 0.0,1.0 };
else
@ -480,6 +480,7 @@ void StretchAudioSource::setPlayRange(Range<double> playrange, bool isloop)
m_inputfile->setLoopEnabled(isloop);
m_inputfile->seek(m_playrange.getStart());
m_seekpos = m_playrange.getStart();
++m_param_change_count;
}
bool StretchAudioSource::isLoopEnabled()