Mercurial > hg > svcore
comparison plugin/RealTimePluginInstance.h @ 51:c2913298cf94
* Make RealTimePluginInstances also provide the PluginInstance interface
author | Chris Cannam |
---|---|
date | Mon, 20 Mar 2006 13:48:58 +0000 |
parents | 39ae3dee27b9 |
children | d397ea0a79f5 |
comparison
equal
deleted
inserted
replaced
50:080ad875395a | 51:c2913298cf94 |
---|---|
14 */ | 14 */ |
15 | 15 |
16 #ifndef _REALTIME_PLUGIN_INSTANCE_H_ | 16 #ifndef _REALTIME_PLUGIN_INSTANCE_H_ |
17 #define _REALTIME_PLUGIN_INSTANCE_H_ | 17 #define _REALTIME_PLUGIN_INSTANCE_H_ |
18 | 18 |
19 #include "PluginInstance.h" | |
20 | |
19 #include <QString> | 21 #include <QString> |
20 #include <QStringList> | 22 #include <QStringList> |
21 #include <vector> | 23 #include <vector> |
24 #include <string> | |
22 | 25 |
23 #include "base/RealTime.h" | 26 #include "base/RealTime.h" |
24 | 27 |
25 class RealTimePluginFactory; | 28 class RealTimePluginFactory; |
26 | 29 |
32 * The audio code calls run() on an instance that has been passed to | 35 * The audio code calls run() on an instance that has been passed to |
33 * it, and assumes that the passing code has already initialised the | 36 * it, and assumes that the passing code has already initialised the |
34 * plugin, connected its inputs and outputs and so on, and that there | 37 * plugin, connected its inputs and outputs and so on, and that there |
35 * is an understanding in place about the sizes of the buffers in use | 38 * is an understanding in place about the sizes of the buffers in use |
36 * by the plugin. All of this depends on the subclass implementation. | 39 * by the plugin. All of this depends on the subclass implementation. |
40 * | |
41 * The PluginInstance base class includes additional abstract methods | |
42 * which the subclass of RealTimePluginInstance must implement. | |
37 */ | 43 */ |
38 | 44 |
39 // These names are taken from LADSPA, but the values are not | 45 // These names are taken from LADSPA, but the values are not |
40 // guaranteed to match | 46 // guaranteed to match |
41 | 47 |
52 static const int Integer = 2; | 58 static const int Integer = 2; |
53 static const int Logarithmic = 4; | 59 static const int Logarithmic = 4; |
54 static const int SampleRate = 8; | 60 static const int SampleRate = 8; |
55 } | 61 } |
56 | 62 |
57 class RealTimePluginInstance | 63 class RealTimePluginInstance : public PluginInstance |
58 { | 64 { |
59 public: | 65 public: |
60 typedef float sample_t; | 66 typedef float sample_t; |
61 | 67 |
62 virtual ~RealTimePluginInstance(); | 68 virtual ~RealTimePluginInstance(); |
78 virtual size_t getAudioOutputCount() const = 0; | 84 virtual size_t getAudioOutputCount() const = 0; |
79 | 85 |
80 virtual sample_t **getAudioInputBuffers() = 0; | 86 virtual sample_t **getAudioInputBuffers() = 0; |
81 virtual sample_t **getAudioOutputBuffers() = 0; | 87 virtual sample_t **getAudioOutputBuffers() = 0; |
82 | 88 |
83 virtual QStringList getPrograms() const { return QStringList(); } | 89 // virtual QStringList getPrograms() const { return QStringList(); } |
84 virtual QString getCurrentProgram() const { return QString(); } | 90 // virtual QString getCurrentProgram() const { return QString(); } |
85 virtual QString getProgram(int /* bank */, int /* program */) const { return QString(); } | 91 virtual std::string getProgram(int /* bank */, int /* program */) const { return std::string(); } |
86 virtual unsigned long getProgram(QString /* name */) const { return 0; } // bank << 16 + program | 92 // virtual unsigned long getProgram(QString /* name */) const { return 0; } // bank << 16 + program |
87 virtual void selectProgram(QString) { } | 93 // virtual void selectProgram(QString) { } |
88 | 94 |
89 virtual unsigned int getParameterCount() const = 0; | 95 virtual unsigned int getParameterCount() const = 0; |
90 virtual void setParameterValue(unsigned int parameter, float value) = 0; | 96 virtual void setParameterValue(unsigned int parameter, float value) = 0; |
91 virtual float getParameterValue(unsigned int parameter) const = 0; | 97 virtual float getParameterValue(unsigned int parameter) const = 0; |
92 virtual float getParameterDefault(unsigned int parameter) const = 0; | 98 virtual float getParameterDefault(unsigned int parameter) const = 0; |
93 | 99 |
94 virtual QString configure(QString /* key */, QString /* value */) { return QString(); } | 100 virtual std::string configure(std::string /* key */, std::string /* value */) { return std::string(); } |
95 | 101 |
96 virtual void sendEvent(const RealTime & /* eventTime */, | 102 virtual void sendEvent(const RealTime & /* eventTime */, |
97 const void * /* event */) { } | 103 const void * /* event */) { } |
98 virtual void clearEvents() { } | 104 virtual void clearEvents() { } |
99 | 105 |