comparison transform/TransformFactory.cpp @ 1865:7b6e18380e8f startup-timing

Make it possible to check whether the transforms have been populated yet
author Chris Cannam
date Wed, 03 Jun 2020 13:57:50 +0100
parents 6f626cfdba51
children 652c5360e682
comparison
equal deleted inserted replaced
1864:166d7a4c2cd6 1865:7b6e18380e8f
100 100
101 void 101 void
102 TransformFactory::UninstalledTransformsPopulateThread::run() 102 TransformFactory::UninstalledTransformsPopulateThread::run()
103 { 103 {
104 m_factory->m_populatingSlowly = true; 104 m_factory->m_populatingSlowly = true;
105 sleep(1); 105 while (!m_factory->havePopulated()) {
106 sleep(1);
107 }
106 m_factory->populateUninstalledTransforms(); 108 m_factory->populateUninstalledTransforms();
107 } 109 }
108 110
109 TransformList 111 TransformList
110 TransformFactory::getAllTransformDescriptions() 112 TransformFactory::getAllTransformDescriptions()
320 case TransformDescription::EffectsData: return tr("Effects Data"); 322 case TransformDescription::EffectsData: return tr("Effects Data");
321 case TransformDescription::Generator: return tr("Generator"); 323 case TransformDescription::Generator: return tr("Generator");
322 case TransformDescription::UnknownType: return tr("Other"); 324 case TransformDescription::UnknownType: return tr("Other");
323 } 325 }
324 return tr("Other"); 326 return tr("Other");
327 }
328
329 bool
330 TransformFactory::havePopulated()
331 {
332 MutexLocker locker(&m_transformsMutex, "TransformFactory::havePopulated");
333 return m_transformsPopulated;
325 } 334 }
326 335
327 void 336 void
328 TransformFactory::populateTransforms() 337 TransformFactory::populateTransforms()
329 { 338 {
393 402
394 m_transforms[identifier] = desc; 403 m_transforms[identifier] = desc;
395 } 404 }
396 405
397 m_transformsPopulated = true; 406 m_transformsPopulated = true;
407
408 #ifdef DEBUG_TRANSFORM_FACTORY
409 SVCERR << "populateTransforms exiting" << endl;
410 #endif
411
412 emit transformsPopulated();
398 } 413 }
399 414
400 void 415 void
401 TransformFactory::populateFeatureExtractionPlugins(TransformDescriptionMap &transforms) 416 TransformFactory::populateFeatureExtractionPlugins(TransformDescriptionMap &transforms)
402 { 417 {
741 m_uninstalledTransformsPopulated = true; 756 m_uninstalledTransformsPopulated = true;
742 757
743 #ifdef DEBUG_TRANSFORM_FACTORY 758 #ifdef DEBUG_TRANSFORM_FACTORY
744 SVCERR << "populateUninstalledTransforms exiting" << endl; 759 SVCERR << "populateUninstalledTransforms exiting" << endl;
745 #endif 760 #endif
761
762 emit uninstalledTransformsPopulated();
746 } 763 }
747 764
748 Transform 765 Transform
749 TransformFactory::getDefaultTransformFor(TransformId id, sv_samplerate_t rate) 766 TransformFactory::getDefaultTransformFor(TransformId id, sv_samplerate_t rate)
750 { 767 {