diff src/Analyser.cpp @ 163:ec196bd2f068

Use new async transform method in Document to get multiple additional layers from local analysis
author Chris Cannam
date Wed, 29 Jan 2014 17:34:28 +0000
parents cc9aa8f4fceb
children 62ceae757fe0
line wrap: on
line diff
--- a/src/Analyser.cpp	Tue Jan 28 18:34:11 2014 +0000
+++ b/src/Analyser.cpp	Wed Jan 29 17:34:28 2014 +0000
@@ -35,6 +35,8 @@
 
 #include <QSettings>
 
+using std::vector;
+
 Analyser::Analyser() :
     m_document(0),
     m_fileModel(0),
@@ -267,17 +269,24 @@
 
     transforms.push_back(t);
 
-    std::vector<Layer *> layers =
-        m_document->createDerivedLayers(transforms, m_fileModel);
+    m_document->createDerivedLayersAsync(transforms, m_fileModel, this);
 
-    std::cerr << "Analyser::addTestCandidates: Have " << layers.size() << " layer(s)" << std::endl;
+    return "";
+}
 
-    for (int i = 0; i < (int)layers.size(); ++i) {
-        TimeValueLayer *t = qobject_cast<TimeValueLayer *>(layers[i]);
+void
+Analyser::layersCreated(vector<Layer *> primary,
+                        vector<Layer *> additional)
+{
+    for (int i = 0; i < (int)primary.size(); ++i) {
+        TimeValueLayer *t = qobject_cast<TimeValueLayer *>(primary[i]);
         if (t) m_document->addLayerToView(m_pane, t);
     }
 
-    return "";
+    for (int i = 0; i < (int)additional.size(); ++i) {
+        TimeValueLayer *t = qobject_cast<TimeValueLayer *>(additional[i]);
+        if (t) m_document->addLayerToView(m_pane, t);
+    }
 }
 
 void