aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-11-03 18:11:17 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-11-03 18:11:17 +0000
commit1963054966e3a2514fb481c8159c09834a1a12fa (patch)
treed036facb4a2d9fb5312eabcb0f29889b203d2620 /src
parent05d9e7ab7e9030f29c02b0b4aba9988d3473f76d (diff)
downloadqmmp-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
Diffstat (limited to 'src')
-rw-r--r--src/qmmp/effect.cpp8
-rw-r--r--src/qmmp/qmmpaudioengine.cpp13
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