comparison plugin/PluginXml.cpp @ 689:573d45e9487b

Merge from debug-output branch
author Chris Cannam
date Tue, 14 Jun 2011 14:47:59 +0100
parents 06f13a3b9e9e
children 1424aa29ae95
comparison
equal deleted inserted replaced
688:be43b2fe68e8 689:573d45e9487b
79 m_plugin->getParameterDescriptors(); 79 m_plugin->getParameterDescriptors();
80 80
81 for (Vamp::PluginBase::ParameterList::const_iterator i = parameters.begin(); 81 for (Vamp::PluginBase::ParameterList::const_iterator i = parameters.begin();
82 i != parameters.end(); ++i) { 82 i != parameters.end(); ++i) {
83 83
84 // std::cerr << "PluginXml::toXml: parameter name \"" 84 // DEBUG << "PluginXml::toXml: parameter name \""
85 // << i->name.c_str() << "\" has value " 85 // << i->name.c_str() << "\" has value "
86 // << m_plugin->getParameter(i->name) << std::endl; 86 // << m_plugin->getParameter(i->name) << endl;
87 87
88 stream << QString("param-%1=\"%2\" ") 88 stream << QString("param-%1=\"%2\" ")
89 .arg(stripInvalidParameterNameCharacters(QString(i->identifier.c_str()))) 89 .arg(stripInvalidParameterNameCharacters(QString(i->identifier.c_str())))
90 .arg(m_plugin->getParameter(i->identifier)); 90 .arg(m_plugin->getParameter(i->identifier));
91 } 91 }
117 #define CHECK_ATTRIBUTE(ATTRIBUTE, ACCESSOR) \ 117 #define CHECK_ATTRIBUTE(ATTRIBUTE, ACCESSOR) \
118 QString ATTRIBUTE = attrs.value(#ATTRIBUTE); \ 118 QString ATTRIBUTE = attrs.value(#ATTRIBUTE); \
119 if (ATTRIBUTE != "" && ATTRIBUTE != ACCESSOR().c_str()) { \ 119 if (ATTRIBUTE != "" && ATTRIBUTE != ACCESSOR().c_str()) { \
120 std::cerr << "WARNING: PluginXml::setParameters: Plugin " \ 120 std::cerr << "WARNING: PluginXml::setParameters: Plugin " \
121 << #ATTRIBUTE << " does not match (attributes have \"" \ 121 << #ATTRIBUTE << " does not match (attributes have \"" \
122 << ATTRIBUTE.toStdString() << "\", my " \ 122 << ATTRIBUTE << "\", my " \
123 << #ATTRIBUTE << " is \"" << ACCESSOR() << "\")" << std::endl; \ 123 << #ATTRIBUTE << " is \"" << ACCESSOR() << "\")" << std::endl; \
124 } 124 }
125 125
126 void 126 void
127 PluginXml::setParameters(const QXmlAttributes &attrs) 127 PluginXml::setParameters(const QXmlAttributes &attrs)
172 QString pname = QString("param-%1") 172 QString pname = QString("param-%1")
173 .arg(stripInvalidParameterNameCharacters 173 .arg(stripInvalidParameterNameCharacters
174 (QString(i->identifier.c_str()))); 174 (QString(i->identifier.c_str())));
175 175
176 if (attrs.value(pname) == "") { 176 if (attrs.value(pname) == "") {
177 // std::cerr << "PluginXml::setParameters: no parameter \"" << i->name << "\" (attribute \"" << name.toStdString() << "\")" << std::endl; 177 // DEBUG << "PluginXml::setParameters: no parameter \"" << i->name << "\" (attribute \"" << name << "\")" << endl;
178 continue; 178 continue;
179 } 179 }
180 180
181 bool ok; 181 bool ok;
182 float value = attrs.value(pname).trimmed().toFloat(&ok); 182 float value = attrs.value(pname).trimmed().toFloat(&ok);
183 if (ok) { 183 if (ok) {
184 // std::cerr << "PluginXml::setParameters: setting parameter \"" 184 // DEBUG << "PluginXml::setParameters: setting parameter \""
185 // << i->identifier << "\" to value " << value << std::endl; 185 // << i->identifier << "\" to value " << value << endl;
186 m_plugin->setParameter(i->identifier, value); 186 m_plugin->setParameter(i->identifier, value);
187 } else { 187 } else {
188 std::cerr << "WARNING: PluginXml::setParameters: Invalid value \"" << attrs.value(pname).toStdString() << "\" for parameter \"" << i->identifier << "\" (attribute \"" << pname.toStdString() << "\")" << std::endl; 188 std::cerr << "WARNING: PluginXml::setParameters: Invalid value \"" << attrs.value(pname) << "\" for parameter \"" << i->identifier << "\" (attribute \"" << pname << "\")" << std::endl;
189 } 189 }
190 } 190 }
191 } 191 }
192 192
193 void 193 void
197 197
198 QString error; 198 QString error;
199 int errorLine; 199 int errorLine;
200 int errorColumn; 200 int errorColumn;
201 201
202 // std::cerr << "PluginXml::setParametersFromXml: XML is \"" 202 // DEBUG << "PluginXml::setParametersFromXml: XML is \""
203 // << xml.toLocal8Bit().data() << "\"" << std::endl; 203 // << xml.toLocal8Bit().data() << "\"" << endl;
204 204
205 if (!doc.setContent(xml, false, &error, &errorLine, &errorColumn)) { 205 if (!doc.setContent(xml, false, &error, &errorLine, &errorColumn)) {
206 std::cerr << "PluginXml::setParametersFromXml: Error in parsing XML: " << error.toStdString() << " at line " << errorLine << ", column " << errorColumn << std::endl; 206 std::cerr << "PluginXml::setParametersFromXml: Error in parsing XML: " << error << " at line " << errorLine << ", column " << errorColumn << std::endl;
207 std::cerr << "Input follows:" << std::endl; 207 std::cerr << "Input follows:" << std::endl;
208 std::cerr << xml.toStdString() << std::endl; 208 std::cerr << xml << std::endl;
209 std::cerr << "Input ends." << std::endl; 209 std::cerr << "Input ends." << std::endl;
210 return; 210 return;
211 } 211 }
212 212
213 QDomElement pluginElt = doc.firstChildElement("plugin"); 213 QDomElement pluginElt = doc.firstChildElement("plugin");
215 QXmlAttributes attrs; 215 QXmlAttributes attrs;
216 216
217 for (unsigned int i = 0; i < attrNodes.length(); ++i) { 217 for (unsigned int i = 0; i < attrNodes.length(); ++i) {
218 QDomAttr attr = attrNodes.item(i).toAttr(); 218 QDomAttr attr = attrNodes.item(i).toAttr();
219 if (attr.isNull()) continue; 219 if (attr.isNull()) continue;
220 // std::cerr << "PluginXml::setParametersFromXml: Adding attribute \"" << attr.name().toStdString() 220 // DEBUG << "PluginXml::setParametersFromXml: Adding attribute \"" << attr.name()// << "\" with value \"" << attr.value() << "\"" << endl;
221 // << "\" with value \"" << attr.value().toStdString() << "\"" << std::endl;
222 attrs.append(attr.name(), "", "", attr.value()); 221 attrs.append(attr.name(), "", "", attr.value());
223 } 222 }
224 223
225 setParameters(attrs); 224 setParameters(attrs);
226 } 225 }