comparison transform/TransformFactory.cpp @ 1429:48e9f538e6e9

Untabify
author Chris Cannam
date Thu, 01 Mar 2018 18:02:22 +0000
parents a99641535e02
children 9c14dee72329
comparison
equal deleted inserted replaced
1428:87ae75da6527 1429:48e9f538e6e9
110 { 110 {
111 populateTransforms(); 111 populateTransforms();
112 112
113 std::set<TransformDescription> dset; 113 std::set<TransformDescription> dset;
114 for (TransformDescriptionMap::const_iterator i = m_transforms.begin(); 114 for (TransformDescriptionMap::const_iterator i = m_transforms.begin();
115 i != m_transforms.end(); ++i) { 115 i != m_transforms.end(); ++i) {
116 #ifdef DEBUG_TRANSFORM_FACTORY 116 #ifdef DEBUG_TRANSFORM_FACTORY
117 cerr << "inserting transform into set: id = " << i->second.identifier << endl; 117 cerr << "inserting transform into set: id = " << i->second.identifier << endl;
118 #endif 118 #endif
119 dset.insert(i->second); 119 dset.insert(i->second);
120 } 120 }
121 121
122 TransformList list; 122 TransformList list;
123 for (std::set<TransformDescription>::const_iterator i = dset.begin(); 123 for (std::set<TransformDescription>::const_iterator i = dset.begin();
124 i != dset.end(); ++i) { 124 i != dset.end(); ++i) {
125 #ifdef DEBUG_TRANSFORM_FACTORY 125 #ifdef DEBUG_TRANSFORM_FACTORY
126 cerr << "inserting transform into list: id = " << i->identifier << endl; 126 cerr << "inserting transform into list: id = " << i->identifier << endl;
127 #endif 127 #endif
128 list.push_back(*i); 128 list.push_back(*i);
129 } 129 }
130 130
131 return list; 131 return list;
132 } 132 }
133 133
156 m_populatingSlowly = false; 156 m_populatingSlowly = false;
157 populateUninstalledTransforms(); 157 populateUninstalledTransforms();
158 158
159 std::set<TransformDescription> dset; 159 std::set<TransformDescription> dset;
160 for (TransformDescriptionMap::const_iterator i = m_uninstalledTransforms.begin(); 160 for (TransformDescriptionMap::const_iterator i = m_uninstalledTransforms.begin();
161 i != m_uninstalledTransforms.end(); ++i) { 161 i != m_uninstalledTransforms.end(); ++i) {
162 #ifdef DEBUG_TRANSFORM_FACTORY 162 #ifdef DEBUG_TRANSFORM_FACTORY
163 cerr << "inserting transform into set: id = " << i->second.identifier << endl; 163 cerr << "inserting transform into set: id = " << i->second.identifier << endl;
164 #endif 164 #endif
165 dset.insert(i->second); 165 dset.insert(i->second);
166 } 166 }
167 167
168 TransformList list; 168 TransformList list;
169 for (std::set<TransformDescription>::const_iterator i = dset.begin(); 169 for (std::set<TransformDescription>::const_iterator i = dset.begin();
170 i != dset.end(); ++i) { 170 i != dset.end(); ++i) {
171 #ifdef DEBUG_TRANSFORM_FACTORY 171 #ifdef DEBUG_TRANSFORM_FACTORY
172 cerr << "inserting transform into uninstalled list: id = " << i->identifier << endl; 172 cerr << "inserting transform into uninstalled list: id = " << i->identifier << endl;
173 #endif 173 #endif
174 list.push_back(*i); 174 list.push_back(*i);
175 } 175 }
176 176
177 return list; 177 return list;
178 } 178 }
179 179
246 { 246 {
247 populateTransforms(); 247 populateTransforms();
248 248
249 std::set<TransformDescription::Type> types; 249 std::set<TransformDescription::Type> types;
250 for (TransformDescriptionMap::const_iterator i = m_transforms.begin(); 250 for (TransformDescriptionMap::const_iterator i = m_transforms.begin();
251 i != m_transforms.end(); ++i) { 251 i != m_transforms.end(); ++i) {
252 types.insert(i->second.type); 252 types.insert(i->second.type);
253 } 253 }
254 254
255 std::vector<TransformDescription::Type> rv; 255 std::vector<TransformDescription::Type> rv;
256 for (std::set<TransformDescription::Type>::iterator i = types.begin(); i != types.end(); ++i) { 256 for (std::set<TransformDescription::Type>::iterator i = types.begin(); i != types.end(); ++i) {
374 374
375 for (TransformDescriptionMap::iterator i = transforms.begin(); 375 for (TransformDescriptionMap::iterator i = transforms.begin();
376 i != transforms.end(); ++i) { 376 i != transforms.end(); ++i) {
377 377
378 TransformDescription desc = i->second; 378 TransformDescription desc = i->second;
379 QString identifier = desc.identifier; 379 QString identifier = desc.identifier;
380 QString maker = desc.maker; 380 QString maker = desc.maker;
381 381
382 QString td = desc.name; 382 QString td = desc.name;
383 QString tn = td.section(": ", 0, 0); 383 QString tn = td.section(": ", 0, 0);
384 QString to = td.section(": ", 1); 384 QString to = td.section(": ", 1);
385 385
386 if (names[tn] > 1) { 386 if (names[tn] > 1) {
387 maker.replace(QRegExp(tr(" [\\(<].*$")), ""); 387 maker.replace(QRegExp(tr(" [\\(<].*$")), "");
388 tn = QString("%1 [%2]").arg(tn).arg(maker); 388 tn = QString("%1 [%2]").arg(tn).arg(maker);
389 } 389 }
390 390
391 if (to != "") { 391 if (to != "") {
392 desc.name = QString("%1: %2").arg(tn).arg(to); 392 desc.name = QString("%1: %2").arg(tn).arg(to);
393 } else { 393 } else {
394 desc.name = tn; 394 desc.name = tn;
395 } 395 }
396 396
397 m_transforms[identifier] = desc; 397 m_transforms[identifier] = desc;
398 } 398 }
399 399
400 m_transformsPopulated = true; 400 m_transformsPopulated = true;
401 } 401 }
402 402
403 void 403 void
414 414
415 if (m_exiting) return; 415 if (m_exiting) return;
416 416
417 for (int i = 0; i < (int)plugs.size(); ++i) { 417 for (int i = 0; i < (int)plugs.size(); ++i) {
418 418
419 QString pluginId = plugs[i]; 419 QString pluginId = plugs[i];
420 420
421 piper_vamp::PluginStaticData psd = factory->getPluginStaticData(pluginId); 421 piper_vamp::PluginStaticData psd = factory->getPluginStaticData(pluginId);
422 422
423 if (psd.pluginKey == "") { 423 if (psd.pluginKey == "") {
424 cerr << "WARNING: TransformFactory::populateTransforms: No plugin static data available for instance " << pluginId << endl; 424 cerr << "WARNING: TransformFactory::populateTransforms: No plugin static data available for instance " << pluginId << endl;
432 432
433 for (const auto &o: basicOutputs) { 433 for (const auto &o: basicOutputs) {
434 434
435 QString outputName = QString::fromStdString(o.name); 435 QString outputName = QString::fromStdString(o.name);
436 436
437 QString transformId = QString("%1:%2") 437 QString transformId = QString("%1:%2")
438 .arg(pluginId).arg(QString::fromStdString(o.identifier)); 438 .arg(pluginId).arg(QString::fromStdString(o.identifier));
439 439
440 QString userName; 440 QString userName;
441 QString friendlyName; 441 QString friendlyName;
442 //!!! return to this QString units = outputs[j].unit.c_str(); 442 //!!! return to this QString units = outputs[j].unit.c_str();
443 QString description = QString::fromStdString(psd.basic.description); 443 QString description = QString::fromStdString(psd.basic.description);
444 QString maker = QString::fromStdString(psd.maker); 444 QString maker = QString::fromStdString(psd.maker);
445 if (maker == "") maker = tr("<unknown maker>"); 445 if (maker == "") maker = tr("<unknown maker>");
462 longDescription = tr("%1 using \"%2\" output of \"%3\" plugin (from %4)") 462 longDescription = tr("%1 using \"%2\" output of \"%3\" plugin (from %4)")
463 .arg(longDescription).arg(outputName).arg(pluginName).arg(maker); 463 .arg(longDescription).arg(outputName).arg(pluginName).arg(maker);
464 } 464 }
465 } 465 }
466 466
467 if (basicOutputs.size() == 1) { 467 if (basicOutputs.size() == 1) {
468 userName = pluginName; 468 userName = pluginName;
469 friendlyName = pluginName; 469 friendlyName = pluginName;
470 } else { 470 } else {
471 userName = QString("%1: %2").arg(pluginName).arg(outputName); 471 userName = QString("%1: %2").arg(pluginName).arg(outputName);
472 friendlyName = outputName; 472 friendlyName = outputName;
473 } 473 }
474 474
475 bool configurable = (!psd.programs.empty() || 475 bool configurable = (!psd.programs.empty() ||
476 !psd.parameters.empty()); 476 !psd.parameters.empty());
477 477
478 #ifdef DEBUG_TRANSFORM_FACTORY 478 #ifdef DEBUG_TRANSFORM_FACTORY
479 cerr << "Feature extraction plugin transform: " << transformId << " friendly name: " << friendlyName << endl; 479 cerr << "Feature extraction plugin transform: " << transformId << " friendly name: " << friendlyName << endl;
480 #endif 480 #endif
481 481
482 transforms[transformId] = 482 transforms[transformId] =
483 TransformDescription(TransformDescription::Analysis, 483 TransformDescription(TransformDescription::Analysis,
484 category, 484 category,
485 transformId, 485 transformId,
486 userName, 486 userName,
487 friendlyName, 487 friendlyName,
489 longDescription, 489 longDescription,
490 maker, 490 maker,
491 //!!! units, 491 //!!! units,
492 "", 492 "",
493 configurable); 493 configurable);
494 } 494 }
495 } 495 }
496 } 496 }
497 497
498 void 498 void
499 TransformFactory::populateRealTimePlugins(TransformDescriptionMap &transforms) 499 TransformFactory::populateRealTimePlugins(TransformDescriptionMap &transforms)
500 { 500 {
501 std::vector<QString> plugs = 501 std::vector<QString> plugs =
502 RealTimePluginFactory::getAllPluginIdentifiers(); 502 RealTimePluginFactory::getAllPluginIdentifiers();
503 if (m_exiting) return; 503 if (m_exiting) return;
504 504
505 static QRegExp unitRE("[\\[\\(]([A-Za-z0-9/]+)[\\)\\]]$"); 505 static QRegExp unitRE("[\\[\\(]([A-Za-z0-9/]+)[\\)\\]]$");
506 506
507 for (int i = 0; i < (int)plugs.size(); ++i) { 507 for (int i = 0; i < (int)plugs.size(); ++i) {
508 508
509 QString pluginId = plugs[i]; 509 QString pluginId = plugs[i];
510 510
511 RealTimePluginFactory *factory = 511 RealTimePluginFactory *factory =
512 RealTimePluginFactory::instanceFor(pluginId); 512 RealTimePluginFactory::instanceFor(pluginId);
513 513
514 if (!factory) { 514 if (!factory) {
515 cerr << "WARNING: TransformFactory::populateTransforms: No real time plugin factory for instance " << pluginId << endl; 515 cerr << "WARNING: TransformFactory::populateTransforms: No real time plugin factory for instance " << pluginId << endl;
516 continue; 516 continue;
517 } 517 }
518 518
519 const RealTimePluginDescriptor *descriptor = 519 const RealTimePluginDescriptor *descriptor =
520 factory->getPluginDescriptor(pluginId); 520 factory->getPluginDescriptor(pluginId);
521 521
522 if (!descriptor) { 522 if (!descriptor) {
523 cerr << "WARNING: TransformFactory::populateTransforms: Failed to query plugin " << pluginId << endl; 523 cerr << "WARNING: TransformFactory::populateTransforms: Failed to query plugin " << pluginId << endl;
524 continue; 524 continue;
525 } 525 }
526 526
527 //!!! if (descriptor->controlOutputPortCount == 0 || 527 //!!! if (descriptor->controlOutputPortCount == 0 ||
528 // descriptor->audioInputPortCount == 0) continue; 528 // descriptor->audioInputPortCount == 0) continue;
529 529
530 // cout << "TransformFactory::populateRealTimePlugins: plugin " << pluginId << " has " << descriptor->controlOutputPortCount << " control output ports, " << descriptor->audioOutputPortCount << " audio outputs, " << descriptor->audioInputPortCount << " audio inputs" << endl; 530 // cout << "TransformFactory::populateRealTimePlugins: plugin " << pluginId << " has " << descriptor->controlOutputPortCount << " control output ports, " << descriptor->audioOutputPortCount << " audio outputs, " << descriptor->audioInputPortCount << " audio inputs" << endl;
531 531
532 QString pluginName = descriptor->name.c_str(); 532 QString pluginName = descriptor->name.c_str();
533 QString category = factory->getPluginCategory(pluginId); 533 QString category = factory->getPluginCategory(pluginId);
534 bool configurable = (descriptor->parameterCount > 0); 534 bool configurable = (descriptor->parameterCount > 0);
535 QString maker = descriptor->maker.c_str(); 535 QString maker = descriptor->maker.c_str();
536 if (maker == "") maker = tr("<unknown maker>"); 536 if (maker == "") maker = tr("<unknown maker>");
537 537
854 854
855 QString 855 QString
856 TransformFactory::getTransformName(TransformId identifier) 856 TransformFactory::getTransformName(TransformId identifier)
857 { 857 {
858 if (m_transforms.find(identifier) != m_transforms.end()) { 858 if (m_transforms.find(identifier) != m_transforms.end()) {
859 return m_transforms[identifier].name; 859 return m_transforms[identifier].name;
860 } else return ""; 860 } else return "";
861 } 861 }
862 862
863 QString 863 QString
864 TransformFactory::getTransformFriendlyName(TransformId identifier) 864 TransformFactory::getTransformFriendlyName(TransformId identifier)
865 { 865 {
866 if (m_transforms.find(identifier) != m_transforms.end()) { 866 if (m_transforms.find(identifier) != m_transforms.end()) {
867 return m_transforms[identifier].friendlyName; 867 return m_transforms[identifier].friendlyName;
868 } else return ""; 868 } else return "";
869 } 869 }
870 870
871 QString 871 QString
872 TransformFactory::getTransformUnits(TransformId identifier) 872 TransformFactory::getTransformUnits(TransformId identifier)
873 { 873 {
874 if (m_transforms.find(identifier) != m_transforms.end()) { 874 if (m_transforms.find(identifier) != m_transforms.end()) {
875 return m_transforms[identifier].units; 875 return m_transforms[identifier].units;
876 } else return ""; 876 } else return "";
877 } 877 }
878 878
879 QString 879 QString
880 TransformFactory::getTransformInfoUrl(TransformId identifier) 880 TransformFactory::getTransformInfoUrl(TransformId identifier)
881 { 881 {
882 if (m_transforms.find(identifier) != m_transforms.end()) { 882 if (m_transforms.find(identifier) != m_transforms.end()) {
883 return m_transforms[identifier].infoUrl; 883 return m_transforms[identifier].infoUrl;
884 } else return ""; 884 } else return "";
885 } 885 }
886 886
887 Vamp::Plugin::InputDomain 887 Vamp::Plugin::InputDomain
888 TransformFactory::getTransformInputDomain(TransformId identifier) 888 TransformFactory::getTransformInputDomain(TransformId identifier)
911 911
912 bool 912 bool
913 TransformFactory::isTransformConfigurable(TransformId identifier) 913 TransformFactory::isTransformConfigurable(TransformId identifier)
914 { 914 {
915 if (m_transforms.find(identifier) != m_transforms.end()) { 915 if (m_transforms.find(identifier) != m_transforms.end()) {
916 return m_transforms[identifier].configurable; 916 return m_transforms[identifier].configurable;
917 } else return false; 917 } else return false;
918 } 918 }
919 919
920 bool 920 bool
921 TransformFactory::getTransformChannelRange(TransformId identifier, 921 TransformFactory::getTransformChannelRange(TransformId identifier,