diff options
Diffstat (limited to 'intern/audaspace/intern/AUD_SequencerReader.cpp')
-rw-r--r-- | intern/audaspace/intern/AUD_SequencerReader.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/intern/audaspace/intern/AUD_SequencerReader.cpp b/intern/audaspace/intern/AUD_SequencerReader.cpp index aef93cd3896..b893b132fa3 100644 --- a/intern/audaspace/intern/AUD_SequencerReader.cpp +++ b/intern/audaspace/intern/AUD_SequencerReader.cpp @@ -78,6 +78,9 @@ AUD_Specs AUD_SequencerReader::getSpecs() const void AUD_SequencerReader::read(int& length, bool& eos, sample_t* buffer) { + if (m_sequence->m_recursive) + return; + AUD_MutexLock lock(*m_sequence); if(m_sequence->m_status != m_status) @@ -192,7 +195,9 @@ void AUD_SequencerReader::read(int& length, bool& eos, sample_t* buffer) v2 -= v; m_device.setListenerVelocity(v2 * m_sequence->m_fps); + m_sequence->m_recursive = true; m_device.read(reinterpret_cast<data_t*>(buffer + specs.channels * pos), len); + m_sequence->m_recursive = false; pos += len; time += float(len) / float(specs.rate); |