summaryrefslogtreecommitdiffstats
path: root/src/effects/effectchainmanager.cpp
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2017-06-04 23:13:15 +0200
committerDaniel Schürmann <daschuer@mixxx.org>2017-06-04 23:13:15 +0200
commit29499f393f288b91c71c94d13ebfd65c9facd733 (patch)
tree1e379d1483a07984eb835fa2d687d29dedcb2210 /src/effects/effectchainmanager.cpp
parent46b369ee33be7492407824167c6bdef9d700feae (diff)
Initalise chain slots before loading effects.xml
Diffstat (limited to 'src/effects/effectchainmanager.cpp')
-rw-r--r--src/effects/effectchainmanager.cpp37
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;
}