Mercurial > hg > svcore
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(); }