diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-11-03 18:11:17 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-11-03 18:11:17 +0000 |
| commit | 1963054966e3a2514fb481c8159c09834a1a12fa (patch) | |
| tree | d036facb4a2d9fb5312eabcb0f29889b203d2620 | |
| parent | 05d9e7ab7e9030f29c02b0b4aba9988d3473f76d (diff) | |
| download | qmmp-1963054966e3a2514fb481c8159c09834a1a12fa.tar.gz qmmp-1963054966e3a2514fb481c8159c09834a1a12fa.tar.bz2 qmmp-1963054966e3a2514fb481c8159c09834a1a12fa.zip | |
fixed add/remove effects problem
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1975 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/qmmp/effect.cpp | 8 | ||||
| -rw-r--r-- | src/qmmp/qmmpaudioengine.cpp | 13 |
2 files changed, 11 insertions, 10 deletions
diff --git a/src/qmmp/effect.cpp b/src/qmmp/effect.cpp index 0b8b622ab..51490f098 100644 --- a/src/qmmp/effect.cpp +++ b/src/qmmp/effect.cpp @@ -121,12 +121,8 @@ void Effect::checkFactories() Effect* Effect::create(EffectFactory *factory) { checkFactories(); - Effect *effect = 0; - if(isEnabled(factory)) - { - effect = factory->create(); - effect->m_factory = factory; - } + Effect *effect = factory->create(); + effect->m_factory = factory; return effect; } diff --git a/src/qmmp/qmmpaudioengine.cpp b/src/qmmp/qmmpaudioengine.cpp index 30a109689..b26971bd3 100644 --- a/src/qmmp/qmmpaudioengine.cpp +++ b/src/qmmp/qmmpaudioengine.cpp @@ -157,7 +157,9 @@ void QmmpAudioEngine::addEffect(EffectFactory *factory) } if(m_output && m_output->isRunning()) { - Effect *effect = factory->create(); + Effect *effect = Effect::create(factory); + if(!effect) + return; effect->configure(m_ap.sampleRate(), m_ap.channels(), m_ap.format()); if(effect->audioParameters() == m_ap) { @@ -176,10 +178,13 @@ void QmmpAudioEngine::addEffect(EffectFactory *factory) void QmmpAudioEngine::removeEffect(EffectFactory *factory) { Effect *effect = 0; - foreach(effect, m_effects) + foreach(Effect *e, m_effects) { - if(effect->factory() == factory) + if(e->factory() == factory) + { + effect = e; break; + } } if(!effect) return; @@ -415,7 +420,7 @@ void QmmpAudioEngine::run() delete m_output; m_output = createOutput(); if(m_output) - { + { m_output->start(); sendMetaData(); addOffset(); //offset |
