# HG changeset patch # User Chris Cannam # Date 1391016868 0 # Node ID ec196bd2f068eb27d19f4d8c518e9b4be2b88b5e # Parent cc9aa8f4fceb4f99d8c1642869692f38565a105c Use new async transform method in Document to get multiple additional layers from local analysis diff -r cc9aa8f4fceb -r ec196bd2f068 .hgsubstate --- a/.hgsubstate Tue Jan 28 18:34:11 2014 +0000 +++ b/.hgsubstate Wed Jan 29 17:34:28 2014 +0000 @@ -1,5 +1,5 @@ 236814e07bd07473958c1ff89103124536a0c3c8 dataquay 27d4e7152c954bf3c4387319db088fb3cd02436b sv-dependency-builds -d2c13ec0f1482e003d86c0ba3f7c5e5fbae6de08 svapp -4dce43294740dc971bf16d2b98164097749bf814 svcore +f72d58d1ccb0736f4ab40853986d5952e0dd8321 svapp +a2689db084f49daf0dcac1bea13d33c51f600266 svcore 5f9c0147d1d6302edac372e4d5747ae615d57638 svgui diff -r cc9aa8f4fceb -r ec196bd2f068 src/Analyser.cpp --- 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 +using std::vector; + Analyser::Analyser() : m_document(0), m_fileModel(0), @@ -267,17 +269,24 @@ transforms.push_back(t); - std::vector 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(layers[i]); +void +Analyser::layersCreated(vector primary, + vector additional) +{ + for (int i = 0; i < (int)primary.size(); ++i) { + TimeValueLayer *t = qobject_cast(primary[i]); if (t) m_document->addLayerToView(m_pane, t); } - return ""; + for (int i = 0; i < (int)additional.size(); ++i) { + TimeValueLayer *t = qobject_cast(additional[i]); + if (t) m_document->addLayerToView(m_pane, t); + } } void diff -r cc9aa8f4fceb -r ec196bd2f068 src/Analyser.h --- a/src/Analyser.h Tue Jan 28 18:34:11 2014 +0000 +++ b/src/Analyser.h Wed Jan 29 17:34:28 2014 +0000 @@ -19,16 +19,19 @@ #include #include +#include + +#include "framework/Document.h" class WaveFileModel; class Pane; class PaneStack; -class Document; class Layer; class TimeValueLayer; class Layer; -class Analyser : public QObject +class Analyser : public QObject, + public Document::LayerCreationHandler { Q_OBJECT @@ -95,6 +98,9 @@ QString addTestCandidates(); + // Document::LayerCreationHandler method + void layersCreated(std::vector, std::vector); + void saveState(Component c) const; void loadState(Component c); };