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