diff plugin/RealTimePluginInstance.h @ 60:3086ff194ea0

* More structural work on feature extraction plugin C <-> C++ adapter * Allow use of LADSPA/DSSI plugins with control outputs as feature extraction plugins (DSSI with MIDI output still to come) * Reorder labels on spectrogram status box * Minor tweaks in doc etc.
author Chris Cannam
date Mon, 27 Mar 2006 15:03:02 +0000
parents 7439f1696314
children 7afcfe666910
line wrap: on
line diff
--- a/plugin/RealTimePluginInstance.h	Fri Mar 24 18:15:50 2006 +0000
+++ b/plugin/RealTimePluginInstance.h	Mon Mar 27 15:03:02 2006 +0000
@@ -33,9 +33,9 @@
 class RealTimePluginFactory;
 	
 /**
- * RealTimePluginInstance is a very trivial interface that an audio
- * process can use to refer to an instance of a plugin without needing
- * to know what type of plugin it is.
+ * RealTimePluginInstance is an interface that an audio process can
+ * use to refer to an instance of a plugin without needing to know
+ * what type of plugin it is.
  *
  * The audio code calls run() on an instance that has been passed to
  * it, and assumes that the passing code has already initialised the
@@ -47,6 +47,13 @@
  * which the subclass of RealTimePluginInstance must implement.
  */
 
+/*
+ * N.B. RealTimePluginInstance, RealTimePluginFactory and their
+ * subclasses are terrible code.  They've been reused, cut and pasted
+ * and mangled too many times to fit too many different uses, and
+ * could do with a good tidy.
+ */
+
 // These names are taken from LADSPA, but the values are not
 // guaranteed to match
 
@@ -91,6 +98,10 @@
     virtual sample_t **getAudioInputBuffers() = 0;
     virtual sample_t **getAudioOutputBuffers() = 0;
 
+    // Control inputs are known as parameters here
+    virtual size_t getControlOutputCount() const = 0;
+    virtual float getControlOutputValue(size_t n) const = 0;
+
 //     virtual QStringList getPrograms() const { return QStringList(); }
 //     virtual QString getCurrentProgram() const { return QString(); }
     virtual std::string getProgram(int /* bank */, int /* program */) const { return std::string(); }