diff options
author | Daniel Schürmann <daschuer@mixxx.org> | 2017-06-04 23:13:15 +0200 |
---|---|---|
committer | Daniel Schürmann <daschuer@mixxx.org> | 2017-06-04 23:13:15 +0200 |
commit | 29499f393f288b91c71c94d13ebfd65c9facd733 (patch) | |
tree | 1e379d1483a07984eb835fa2d687d29dedcb2210 /src/effects/effectchainmanager.cpp | |
parent | 46b369ee33be7492407824167c6bdef9d700feae (diff) |
Initalise chain slots before loading effects.xml
Diffstat (limited to 'src/effects/effectchainmanager.cpp')
-rw-r--r-- | src/effects/effectchainmanager.cpp | 37 |
1 files changed, 10 insertions, 27 deletions
diff --git a/src/effects/effectchainmanager.cpp b/src/effects/effectchainmanager.cpp index 28becd2841..6b80aab248 100644 --- a/src/effects/effectchainmanager.cpp +++ b/src/effects/effectchainmanager.cpp @@ -48,7 +48,7 @@ StandardEffectRackPointer EffectChainManager::getStandardEffectRack(int i) { EqualizerRackPointer EffectChainManager::addEqualizerRack() { EqualizerRackPointer pRack(new EqualizerRack( - m_pEffectsManager, this, m_equalizerEffectRacks.size())); + m_pEffectsManager, this, m_equalizerEffectRacks.size())); m_equalizerEffectRacks.append(pRack); m_effectRacksByGroup.insert(pRack->getGroup(), pRack); return pRack; @@ -164,12 +164,8 @@ bool EffectChainManager::saveEffectChains() { return true; } -QList<std::pair<EffectChainPointer, QDomElement>> EffectChainManager::loadEffectChains() { - // StandardEffectRack::addEffectChainSlot uses both the EffectChainPointer - // and the saved state from the XML to initialize the respective - // EffectChain/Effect/EffectParameter/EffectButtonParameter Slots - QList<std::pair<EffectChainPointer, QDomElement>> loadedChains; - +void EffectChainManager::loadEffectChains( + StandardEffectRack* pRack) { QDir settingsPath(m_pConfig->getSettingsPath()); QFile file(settingsPath.absoluteFilePath("effects.xml")); QDomDocument doc; @@ -177,12 +173,7 @@ QList<std::pair<EffectChainPointer, QDomElement>> EffectChainManager::loadEffect QDomElement emptyChainElement = doc.createElement(EffectXml::Chain); // Check that XML file can be opened and is valid XML if (!file.open(QIODevice::ReadOnly) || !doc.setContent(&file)) { - for (int i = 0; i < kNumStandardEffectChains; ++i) { - EffectChainPointer pEmptyChain = EffectChainPointer( - new EffectChain(m_pEffectsManager, QString(), EffectChainPointer())); - loadedChains.append(std::make_pair(pEmptyChain, emptyChainElement)); - } - return loadedChains; + return; } QDomElement root = doc.documentElement(); @@ -196,20 +187,12 @@ QList<std::pair<EffectChainPointer, QDomElement>> EffectChainManager::loadEffect if (chainNode.isElement()) { QDomElement chainElement = chainNode.toElement(); EffectChainPointer pChain = EffectChain::createFromXml( - m_pEffectsManager, chainElement); - - loadedChains.append(std::make_pair(pChain, chainElement)); - m_effectChains.append(pChain); + m_pEffectsManager, chainElement); + EffectChainSlotPointer pChainSlot = pRack->getEffectChainSlot(i); + if (pChainSlot) { + pChainSlot->loadEffectChain(pChain); + pChainSlot->loadChainSlotFromXml(chainElement); + } } } - - // Make sure there are enough chains if the XML file does not have - // enough <EffectChain> elements - for (int i = loadedChains.size(); i < kNumStandardEffectChains; ++i) { - EffectChainPointer pEmptyChain = EffectChainPointer( - new EffectChain(m_pEffectsManager, QString(), EffectChainPointer())); - loadedChains.append(std::make_pair(pEmptyChain, emptyChainElement)); - } - - return loadedChains; } |