diff transform/TransformFactory.h @ 118:b4110b17bca8

* Fix #1672407 confused by plugin-named files in cwd (or home?) * Fix #1491848 crash when loading new file while transform plugin runs * Fix #1502287 Background remains black after spectrogram layer deleted * Fix #1604477 Replacing the main audio file silences secondary audio file * Fix failure to initialise property box layout to last preference on startup * Fix resample/wrong-rate display in Pane, ensure that right rate is chosen if all current models have an acceptable rate even if previous main model had a different one * Fix "global zoom" broken in previous commit * Some fixes to spectrogram cache area updating (makes spectrogram appear more quickly, previously it had a tendency to refresh with empty space) * Fixes to colour 3d plot normalization
author Chris Cannam
date Thu, 08 Mar 2007 16:53:08 +0000
parents 58f21cf235c7
children ebd906049fb6
line wrap: on
line diff
--- a/transform/TransformFactory.h	Wed Mar 07 18:00:49 2007 +0000
+++ b/transform/TransformFactory.h	Thu Mar 08 16:53:08 2007 +0000
@@ -20,6 +20,7 @@
 #include "PluginTransform.h"
 
 #include <map>
+#include <set>
 
 namespace Vamp { class PluginBase; }
 
@@ -142,21 +143,16 @@
      */
     bool getTransformChannelRange(TransformId identifier,
                                   int &minChannels, int &maxChannels);
-
-    //!!! Need some way to indicate that the input model has changed /
-    //been deleted so as not to blow up backgrounded transform!  -- Or
-    //indeed, if the output model has been deleted -- could equally
-    //well happen!
-
-    //!!! Need transform category!
 	
 protected slots:
     void transformFinished();
 
+    void modelAboutToBeDeleted(Model *);
+
 protected:
     Transform *createTransform(TransformId identifier, Model *inputModel,
                                const PluginTransform::ExecutionContext &context,
-                               QString configurationXml, bool start);
+                               QString configurationXml);
 
     struct TransformIdent
     {
@@ -170,6 +166,9 @@
     typedef std::map<TransformId, TransformDesc> TransformDescriptionMap;
     TransformDescriptionMap m_transforms;
 
+    typedef std::set<Transform *> TransformSet;
+    TransformSet m_runningTransforms;
+
     void populateTransforms();
     void populateFeatureExtractionPlugins(TransformDescriptionMap &);
     void populateRealTimePlugins(TransformDescriptionMap &);