# HG changeset patch # User Chris Cannam # Date 1427109988 0 # Node ID aa6fb3516e281bae6f9f57f368427374b9138b05 # Parent 2185d52b475892d631c8903075786430226c7620# Parent 9429622647e63d68cd2aedf7c6c29ba6adaf4736 Merge from cxx11 branch diff -r 9429622647e6 -r aa6fb3516e28 audioio/AudioCallbackPlaySource.cpp --- a/audioio/AudioCallbackPlaySource.cpp Wed Mar 11 12:20:06 2015 +0000 +++ b/audioio/AudioCallbackPlaySource.cpp Mon Mar 23 11:26:28 2015 +0000 @@ -149,7 +149,7 @@ { if (m_models.find(model) != m_models.end()) return; - bool canPlay = m_audioGenerator->addModel(model); + bool willPlay = m_audioGenerator->addModel(model); m_mutex.lock(); @@ -225,7 +225,7 @@ clearRingBuffers(true, getTargetChannelCount()); buffersChanged = true; } else { - if (canPlay) clearRingBuffers(true); + if (willPlay) clearRingBuffers(true); } if (buffersChanged || srChanged) { diff -r 9429622647e6 -r aa6fb3516e28 audioio/AudioGenerator.cpp --- a/audioio/AudioGenerator.cpp Wed Mar 11 12:20:06 2015 +0000 +++ b/audioio/AudioGenerator.cpp Mon Mar 23 11:26:28 2015 +0000 @@ -124,12 +124,20 @@ } } + const Playable *playable = model; + if (!playable || !playable->canPlay()) return 0; + + PlayParameters *parameters = + PlayParameterRepository::getInstance()->getPlayParameters(playable); + + bool willPlay = !parameters->isPlayMuted(); + if (usesClipMixer(model)) { ClipMixer *mixer = makeClipMixerFor(model); if (mixer) { QMutexLocker locker(&m_mutex); m_clipMixerMap[model] = mixer; - return true; + return willPlay; } } @@ -138,7 +146,7 @@ if (synth) { QMutexLocker locker(&m_mutex); m_continuousSynthMap[model] = synth; - return true; + return willPlay; } }