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