Mercurial > hg > svapp
comparison audioio/AudioCallbackPlaySource.cpp @ 418:8d2112977aa0 tonioni
Don't clear ring buffers & regenerate when adding a model that is muted anyway
author | Chris Cannam |
---|---|
date | Tue, 11 Nov 2014 16:34:22 +0000 |
parents | b65ee5c4f8bc |
children | aa6fb3516e28 |
comparison
equal
deleted
inserted
replaced
417:d62a622a0e40 | 418:8d2112977aa0 |
---|---|
147 void | 147 void |
148 AudioCallbackPlaySource::addModel(Model *model) | 148 AudioCallbackPlaySource::addModel(Model *model) |
149 { | 149 { |
150 if (m_models.find(model) != m_models.end()) return; | 150 if (m_models.find(model) != m_models.end()) return; |
151 | 151 |
152 bool canPlay = m_audioGenerator->addModel(model); | 152 bool willPlay = m_audioGenerator->addModel(model); |
153 | 153 |
154 m_mutex.lock(); | 154 m_mutex.lock(); |
155 | 155 |
156 m_models.insert(model); | 156 m_models.insert(model); |
157 if (model->getEndFrame() > m_lastModelEndFrame) { | 157 if (model->getEndFrame() > m_lastModelEndFrame) { |
223 | 223 |
224 if (!m_writeBuffers || (int)m_writeBuffers->size() < getTargetChannelCount()) { | 224 if (!m_writeBuffers || (int)m_writeBuffers->size() < getTargetChannelCount()) { |
225 clearRingBuffers(true, getTargetChannelCount()); | 225 clearRingBuffers(true, getTargetChannelCount()); |
226 buffersChanged = true; | 226 buffersChanged = true; |
227 } else { | 227 } else { |
228 if (canPlay) clearRingBuffers(true); | 228 if (willPlay) clearRingBuffers(true); |
229 } | 229 } |
230 | 230 |
231 if (buffersChanged || srChanged) { | 231 if (buffersChanged || srChanged) { |
232 if (m_converter) { | 232 if (m_converter) { |
233 src_delete(m_converter); | 233 src_delete(m_converter); |