Mercurial > hg > svcore
comparison plugin/PluginXml.cpp @ 239:71f869dac40b
* Further fixes for Vamp API change, and update to support API versioning
* Add plugin, output and parameter descriptions to GUI
* Avoid squished panner in heads-up-display on pane when time-value or note
layer is on top
author | Chris Cannam |
---|---|
date | Tue, 27 Feb 2007 12:51:38 +0000 |
parents | d5052b5fea9c |
children | d4a33cdca86f |
comparison
equal
deleted
inserted
replaced
238:76635085e2d9 | 239:71f869dac40b |
---|---|
57 PluginXml::toXmlString(QString indent, QString extraAttributes) const | 57 PluginXml::toXmlString(QString indent, QString extraAttributes) const |
58 { | 58 { |
59 QString s; | 59 QString s; |
60 s += indent; | 60 s += indent; |
61 | 61 |
62 s += QString("<plugin name=\"%1\" description=\"%2\" maker=\"%3\" version=\"%4\" copyright=\"%5\" %6 ") | 62 s += QString("<plugin identifier=\"%1\" name=\"%2\" description=\"%3\" maker=\"%4\" version=\"%5\" copyright=\"%6\" %7 ") |
63 .arg(encodeEntities(QString(m_plugin->getIdentifier().c_str()))) | |
63 .arg(encodeEntities(QString(m_plugin->getName().c_str()))) | 64 .arg(encodeEntities(QString(m_plugin->getName().c_str()))) |
64 .arg(encodeEntities(QString(m_plugin->getDescription().c_str()))) | 65 .arg(encodeEntities(QString(m_plugin->getDescription().c_str()))) |
65 .arg(encodeEntities(QString(m_plugin->getMaker().c_str()))) | 66 .arg(encodeEntities(QString(m_plugin->getMaker().c_str()))) |
66 .arg(m_plugin->getPluginVersion()) | 67 .arg(m_plugin->getPluginVersion()) |
67 .arg(encodeEntities(QString(m_plugin->getCopyright().c_str()))) | 68 .arg(encodeEntities(QString(m_plugin->getCopyright().c_str()))) |
81 // std::cerr << "PluginXml::toXmlString: parameter name \"" | 82 // std::cerr << "PluginXml::toXmlString: parameter name \"" |
82 // << i->name.c_str() << "\" has value " | 83 // << i->name.c_str() << "\" has value " |
83 // << m_plugin->getParameter(i->name) << std::endl; | 84 // << m_plugin->getParameter(i->name) << std::endl; |
84 | 85 |
85 s += QString("param-%1=\"%2\" ") | 86 s += QString("param-%1=\"%2\" ") |
86 .arg(stripInvalidParameterNameCharacters(QString(i->name.c_str()))) | 87 .arg(stripInvalidParameterNameCharacters(QString(i->identifier.c_str()))) |
87 .arg(m_plugin->getParameter(i->name)); | 88 .arg(m_plugin->getParameter(i->identifier)); |
88 } | 89 } |
89 | 90 |
90 RealTimePluginInstance *rtpi = | 91 RealTimePluginInstance *rtpi = |
91 dynamic_cast<RealTimePluginInstance *>(m_plugin); | 92 dynamic_cast<RealTimePluginInstance *>(m_plugin); |
92 if (rtpi) { | 93 if (rtpi) { |
122 } | 123 } |
123 | 124 |
124 void | 125 void |
125 PluginXml::setParameters(const QXmlAttributes &attrs) | 126 PluginXml::setParameters(const QXmlAttributes &attrs) |
126 { | 127 { |
128 CHECK_ATTRIBUTE(identifier, m_plugin->getIdentifier); | |
127 CHECK_ATTRIBUTE(name, m_plugin->getName); | 129 CHECK_ATTRIBUTE(name, m_plugin->getName); |
128 CHECK_ATTRIBUTE(description, m_plugin->getDescription); | 130 CHECK_ATTRIBUTE(description, m_plugin->getDescription); |
129 CHECK_ATTRIBUTE(maker, m_plugin->getMaker); | 131 CHECK_ATTRIBUTE(maker, m_plugin->getMaker); |
130 CHECK_ATTRIBUTE(copyright, m_plugin->getCopyright); | 132 CHECK_ATTRIBUTE(copyright, m_plugin->getCopyright); |
131 | 133 |
164 m_plugin->getParameterDescriptors(); | 166 m_plugin->getParameterDescriptors(); |
165 | 167 |
166 for (Vamp::PluginBase::ParameterList::const_iterator i = | 168 for (Vamp::PluginBase::ParameterList::const_iterator i = |
167 parameters.begin(); i != parameters.end(); ++i) { | 169 parameters.begin(); i != parameters.end(); ++i) { |
168 | 170 |
169 QString name = QString("param-%1") | 171 QString pname = QString("param-%1") |
170 .arg(stripInvalidParameterNameCharacters | 172 .arg(stripInvalidParameterNameCharacters |
171 (QString(i->name.c_str()))); | 173 (QString(i->identifier.c_str()))); |
172 | 174 |
173 if (attrs.value(name) == "") { | 175 if (attrs.value(pname) == "") { |
174 // std::cerr << "PluginXml::setParameters: no parameter \"" << i->name << "\" (attribute \"" << name.toStdString() << "\")" << std::endl; | 176 // std::cerr << "PluginXml::setParameters: no parameter \"" << i->name << "\" (attribute \"" << name.toStdString() << "\")" << std::endl; |
175 continue; | 177 continue; |
176 } | 178 } |
177 | 179 |
178 bool ok; | 180 bool ok; |
179 float value = attrs.value(name).trimmed().toFloat(&ok); | 181 float value = attrs.value(pname).trimmed().toFloat(&ok); |
180 if (ok) { | 182 if (ok) { |
181 m_plugin->setParameter(i->name, value); | 183 std::cerr << "PluginXml::setParameters: setting parameter \"" |
184 << i->identifier << "\" to value " << value << std::endl; | |
185 m_plugin->setParameter(i->identifier, value); | |
182 } else { | 186 } else { |
183 std::cerr << "WARNING: PluginXml::setParameters: Invalid value \"" << attrs.value(name).toStdString() << "\" for parameter \"" << i->name << "\" (attribute \"" << name.toStdString() << "\")" << std::endl; | 187 std::cerr << "WARNING: PluginXml::setParameters: Invalid value \"" << attrs.value(pname).toStdString() << "\" for parameter \"" << i->identifier << "\" (attribute \"" << pname.toStdString() << "\")" << std::endl; |
184 } | 188 } |
185 } | 189 } |
186 } | 190 } |
187 | 191 |
188 void | 192 void |