Mercurial > hg > svapp
diff framework/SVFileReader.cpp @ 308:289d65722123 tonioni
More work on mixing and file i/o for sample stuff
author | Chris Cannam |
---|---|
date | Tue, 07 Jan 2014 15:50:04 +0000 |
parents | 933b5aed341a |
children | 71050ffd0141 |
line wrap: on
line diff
--- a/framework/SVFileReader.cpp Tue Jan 07 13:10:35 2014 +0000 +++ b/framework/SVFileReader.cpp Tue Jan 07 15:50:04 2014 +0000 @@ -1271,8 +1271,8 @@ float gain = attributes.value("gain").toFloat(&ok); if (ok) parameters->setPlayGain(gain); - QString pluginId = attributes.value("pluginId"); - if (pluginId != "") parameters->setPlayPluginId(pluginId); + QString sampleId = attributes.value("sampleId"); + if (sampleId != "") parameters->setPlaySampleId(sampleId); m_currentPlayParameters = parameters; @@ -1291,17 +1291,26 @@ bool SVFileReader::readPlugin(const QXmlAttributes &attributes) { - if (m_currentDerivedModelId < 0 && !m_currentPlayParameters) { + if (m_currentDerivedModelId >= 0) { + return readPluginForTransform(attributes); + } else if (m_currentPlayParameters) { + return readPluginForPlayback(attributes); + } else { cerr << "WARNING: SV-XML: Plugin found outside derivation or play parameters" << endl; return false; } +} - if (!m_currentPlayParameters && m_currentTransformIsNewStyle) { +bool +SVFileReader::readPluginForTransform(const QXmlAttributes &attributes) +{ + if (m_currentTransformIsNewStyle) { + // Not needed, we have the transform element instead return true; } QString configurationXml = "<plugin"; - + for (int i = 0; i < attributes.length(); ++i) { configurationXml += QString(" %1=\"%2\"") .arg(attributes.qName(i)) @@ -1310,12 +1319,21 @@ configurationXml += "/>"; - if (m_currentPlayParameters) { - m_currentPlayParameters->setPlayPluginConfiguration(configurationXml); - } else { - TransformFactory::getInstance()-> - setParametersFromPluginConfigurationXml(m_currentTransform, - configurationXml); + TransformFactory::getInstance()-> + setParametersFromPluginConfigurationXml(m_currentTransform, + configurationXml); + return true; +} + +bool +SVFileReader::readPluginForPlayback(const QXmlAttributes &attributes) +{ + // Obsolete but supported for compatibility + + QString ident = attributes.value("identifier"); + if (ident == "sample_player") { + QString sampleId = attributes.value("program"); + if (sampleId != "") m_currentPlayParameters->setPlaySampleId(sampleId); } return true;