Mercurial > hg > svcore
comparison plugin/RealTimePluginInstance.h @ 1040:a1cd5abcb38b cxx11
Introduce and use a samplerate type
author | Chris Cannam |
---|---|
date | Wed, 04 Mar 2015 12:01:04 +0000 |
parents | cc27f35aa75c |
children | 48e9f538e6e9 |
comparison
equal
deleted
inserted
replaced
1039:b14064bd1f97 | 1040:a1cd5abcb38b |
---|---|
20 | 20 |
21 #ifndef _REALTIME_PLUGIN_INSTANCE_H_ | 21 #ifndef _REALTIME_PLUGIN_INSTANCE_H_ |
22 #define _REALTIME_PLUGIN_INSTANCE_H_ | 22 #define _REALTIME_PLUGIN_INSTANCE_H_ |
23 | 23 |
24 #include <vamp-hostsdk/PluginBase.h> | 24 #include <vamp-hostsdk/PluginBase.h> |
25 #include <vamp-hostsdk/RealTime.h> | 25 |
26 #include "base/RealTime.h" | |
27 #include "base/AudioPlaySource.h" | |
26 | 28 |
27 #include <QString> | 29 #include <QString> |
28 #include <QStringList> | 30 #include <QStringList> |
29 #include <vector> | 31 #include <vector> |
30 #include <string> | 32 #include <string> |
31 #include <map> | 33 #include <map> |
32 | |
33 #include "base/AudioPlaySource.h" | |
34 | 34 |
35 class RealTimePluginFactory; | 35 class RealTimePluginFactory; |
36 | 36 |
37 /** | 37 /** |
38 * RealTimePluginInstance is an interface that an audio process can | 38 * RealTimePluginInstance is an interface that an audio process can |
89 * Run for one block, starting at the given time. The start time | 89 * Run for one block, starting at the given time. The start time |
90 * may be of interest to synths etc that may have queued events | 90 * may be of interest to synths etc that may have queued events |
91 * waiting. Other plugins can ignore it. The count, if zero, | 91 * waiting. Other plugins can ignore it. The count, if zero, |
92 * defaults to our fixed buffer size. | 92 * defaults to our fixed buffer size. |
93 */ | 93 */ |
94 virtual void run(const Vamp::RealTime &blockStartTime, | 94 virtual void run(const RealTime &blockStartTime, |
95 size_t count = 0) = 0; | 95 int count = 0) = 0; |
96 | 96 |
97 virtual size_t getBufferSize() const = 0; | 97 virtual int getBufferSize() const = 0; |
98 | 98 |
99 virtual size_t getAudioInputCount() const = 0; | 99 virtual int getAudioInputCount() const = 0; |
100 virtual size_t getAudioOutputCount() const = 0; | 100 virtual int getAudioOutputCount() const = 0; |
101 | 101 |
102 virtual sample_t **getAudioInputBuffers() = 0; | 102 virtual sample_t **getAudioInputBuffers() = 0; |
103 virtual sample_t **getAudioOutputBuffers() = 0; | 103 virtual sample_t **getAudioOutputBuffers() = 0; |
104 | 104 |
105 // Control inputs are known as parameters here | 105 // Control inputs are known as parameters here |
106 virtual size_t getControlOutputCount() const = 0; | 106 virtual int getControlOutputCount() const = 0; |
107 virtual float getControlOutputValue(size_t n) const = 0; | 107 virtual float getControlOutputValue(int n) const = 0; |
108 | 108 |
109 // virtual QStringList getPrograms() const { return QStringList(); } | 109 // virtual QStringList getPrograms() const { return QStringList(); } |
110 // virtual QString getCurrentProgram() const { return QString(); } | 110 // virtual QString getCurrentProgram() const { return QString(); } |
111 virtual std::string getProgram(int /* bank */, int /* program */) const { return std::string(); } | 111 virtual std::string getProgram(int /* bank */, int /* program */) const { return std::string(); } |
112 // virtual int getProgram(QString /* name */) const { return 0; } // bank << 16 + program | 112 // virtual int getProgram(QString /* name */) const { return 0; } // bank << 16 + program |
118 virtual float getParameterDefault(int parameter) const = 0; | 118 virtual float getParameterDefault(int parameter) const = 0; |
119 virtual int getParameterDisplayHint(int parameter) const = 0; | 119 virtual int getParameterDisplayHint(int parameter) const = 0; |
120 | 120 |
121 virtual std::string configure(std::string /* key */, std::string /* value */) { return std::string(); } | 121 virtual std::string configure(std::string /* key */, std::string /* value */) { return std::string(); } |
122 | 122 |
123 virtual void sendEvent(const Vamp::RealTime & /* eventTime */, | 123 virtual void sendEvent(const RealTime & /* eventTime */, |
124 const void * /* event */) { } | 124 const void * /* event */) { } |
125 virtual void clearEvents() { } | 125 virtual void clearEvents() { } |
126 | 126 |
127 virtual bool isBypassed() const = 0; | 127 virtual bool isBypassed() const = 0; |
128 virtual void setBypassed(bool value) = 0; | 128 virtual void setBypassed(bool value) = 0; |
129 | 129 |
130 // This should be called after setup, but while not actually playing. | 130 // This should be called after setup, but while not actually playing. |
131 virtual size_t getLatency() = 0; | 131 virtual sv_frame_t getLatency() = 0; |
132 | 132 |
133 virtual void silence() = 0; | 133 virtual void silence() = 0; |
134 virtual void discardEvents() { } | 134 virtual void discardEvents() { } |
135 virtual void setIdealChannelCount(size_t channels) = 0; // must also silence(); may also re-instantiate | 135 virtual void setIdealChannelCount(int channels) = 0; // must also silence(); may also re-instantiate |
136 | 136 |
137 void setFactory(RealTimePluginFactory *f) { m_factory = f; } // ew | 137 void setFactory(RealTimePluginFactory *f) { m_factory = f; } // ew |
138 | 138 |
139 virtual std::string getType() const { return "Real-Time Plugin"; } | 139 virtual std::string getType() const { return "Real-Time Plugin"; } |
140 | 140 |