Chris@0
|
1
|
Chris@0
|
2
|
Chris@0
|
3 #include "VampTestPlugin.h"
|
Chris@0
|
4
|
Chris@0
|
5
|
Chris@0
|
6 VampTestPlugin::VampTestPlugin(float inputSampleRate) :
|
Chris@0
|
7 Plugin(inputSampleRate)
|
Chris@0
|
8 // Also be sure to set your plugin parameters (presumably stored
|
Chris@0
|
9 // in member variables) to their default values here -- the host
|
Chris@0
|
10 // will not do that for you
|
Chris@0
|
11 {
|
Chris@0
|
12 }
|
Chris@0
|
13
|
Chris@0
|
14 VampTestPlugin::~VampTestPlugin()
|
Chris@0
|
15 {
|
Chris@0
|
16 }
|
Chris@0
|
17
|
Chris@0
|
18 string
|
Chris@0
|
19 VampTestPlugin::getIdentifier() const
|
Chris@0
|
20 {
|
Chris@0
|
21 return "vamp-test-plugin";
|
Chris@0
|
22 }
|
Chris@0
|
23
|
Chris@0
|
24 string
|
Chris@0
|
25 VampTestPlugin::getName() const
|
Chris@0
|
26 {
|
Chris@0
|
27 return "Vamp Test Plugin";
|
Chris@0
|
28 }
|
Chris@0
|
29
|
Chris@0
|
30 string
|
Chris@0
|
31 VampTestPlugin::getDescription() const
|
Chris@0
|
32 {
|
Chris@0
|
33 return "Test plugin for hosts handling various output types";
|
Chris@0
|
34 }
|
Chris@0
|
35
|
Chris@0
|
36 string
|
Chris@0
|
37 VampTestPlugin::getMaker() const
|
Chris@0
|
38 {
|
Chris@0
|
39 return "Chris Cannam";
|
Chris@0
|
40 }
|
Chris@0
|
41
|
Chris@0
|
42 int
|
Chris@0
|
43 VampTestPlugin::getPluginVersion() const
|
Chris@0
|
44 {
|
Chris@0
|
45 return 1;
|
Chris@0
|
46 }
|
Chris@0
|
47
|
Chris@0
|
48 string
|
Chris@0
|
49 VampTestPlugin::getCopyright() const
|
Chris@0
|
50 {
|
Chris@0
|
51 return "BSD";
|
Chris@0
|
52 }
|
Chris@0
|
53
|
Chris@0
|
54 VampTestPlugin::InputDomain
|
Chris@0
|
55 VampTestPlugin::getInputDomain() const
|
Chris@0
|
56 {
|
Chris@0
|
57 return TimeDomain;
|
Chris@0
|
58 }
|
Chris@0
|
59
|
Chris@0
|
60 size_t
|
Chris@0
|
61 VampTestPlugin::getPreferredBlockSize() const
|
Chris@0
|
62 {
|
Chris@0
|
63 return 0;
|
Chris@0
|
64 }
|
Chris@0
|
65
|
Chris@0
|
66 size_t
|
Chris@0
|
67 VampTestPlugin::getPreferredStepSize() const
|
Chris@0
|
68 {
|
Chris@0
|
69 return 0;
|
Chris@0
|
70 }
|
Chris@0
|
71
|
Chris@0
|
72 size_t
|
Chris@0
|
73 VampTestPlugin::getMinChannelCount() const
|
Chris@0
|
74 {
|
Chris@0
|
75 return 1;
|
Chris@0
|
76 }
|
Chris@0
|
77
|
Chris@0
|
78 size_t
|
Chris@0
|
79 VampTestPlugin::getMaxChannelCount() const
|
Chris@0
|
80 {
|
Chris@0
|
81 return 1;
|
Chris@0
|
82 }
|
Chris@0
|
83
|
Chris@0
|
84 VampTestPlugin::ParameterList
|
Chris@0
|
85 VampTestPlugin::getParameterDescriptors() const
|
Chris@0
|
86 {
|
Chris@0
|
87 ParameterList list;
|
Chris@0
|
88 return list;
|
Chris@0
|
89 }
|
Chris@0
|
90
|
Chris@0
|
91 float
|
Chris@0
|
92 VampTestPlugin::getParameter(string identifier) const
|
Chris@0
|
93 {
|
Chris@0
|
94 return 0;
|
Chris@0
|
95 }
|
Chris@0
|
96
|
Chris@0
|
97 void
|
Chris@0
|
98 VampTestPlugin::setParameter(string identifier, float value)
|
Chris@0
|
99 {
|
Chris@0
|
100 }
|
Chris@0
|
101
|
Chris@0
|
102 VampTestPlugin::ProgramList
|
Chris@0
|
103 VampTestPlugin::getPrograms() const
|
Chris@0
|
104 {
|
Chris@0
|
105 ProgramList list;
|
Chris@0
|
106 return list;
|
Chris@0
|
107 }
|
Chris@0
|
108
|
Chris@0
|
109 string
|
Chris@0
|
110 VampTestPlugin::getCurrentProgram() const
|
Chris@0
|
111 {
|
Chris@0
|
112 return ""; // no programs
|
Chris@0
|
113 }
|
Chris@0
|
114
|
Chris@0
|
115 void
|
Chris@0
|
116 VampTestPlugin::selectProgram(string name)
|
Chris@0
|
117 {
|
Chris@0
|
118 }
|
Chris@0
|
119
|
Chris@0
|
120 VampTestPlugin::OutputList
|
Chris@0
|
121 VampTestPlugin::getOutputDescriptors() const
|
Chris@0
|
122 {
|
Chris@0
|
123 OutputList list;
|
Chris@0
|
124
|
Chris@0
|
125 OutputDescriptor d;
|
Chris@1
|
126
|
Chris@1
|
127 //!!! review these: extents, units etc
|
Chris@1
|
128
|
Chris@1
|
129 d.identifier = "instants";
|
Chris@1
|
130 d.name = "Instants";
|
Chris@1
|
131 d.description = ""; //!!!
|
Chris@1
|
132 d.unit = "";
|
Chris@1
|
133 d.hasFixedBinCount = true;
|
Chris@1
|
134 d.binCount = 0;
|
Chris@1
|
135 d.hasKnownExtents = false;
|
Chris@1
|
136 d.isQuantized = false;
|
Chris@1
|
137 d.sampleType = OutputDescriptor::VariableSampleRate;
|
Chris@1
|
138 d.hasDuration = false;
|
Chris@1
|
139 list.push_back(d);
|
Chris@1
|
140
|
Chris@1
|
141 d.identifier = "curve-oss";
|
Chris@1
|
142 d.name = "Curve: OneSamplePerStep";
|
Chris@1
|
143 d.description = ""; //!!!
|
Chris@0
|
144 d.unit = "";
|
Chris@0
|
145 d.hasFixedBinCount = true;
|
Chris@0
|
146 d.binCount = 1;
|
Chris@0
|
147 d.hasKnownExtents = false;
|
Chris@0
|
148 d.isQuantized = false;
|
Chris@0
|
149 d.sampleType = OutputDescriptor::OneSamplePerStep;
|
Chris@0
|
150 d.hasDuration = false;
|
Chris@0
|
151 list.push_back(d);
|
Chris@0
|
152
|
Chris@1
|
153 d.identifier = "curve-fsr";
|
Chris@1
|
154 d.name = "Curve: FixedSampleRate";
|
Chris@1
|
155 d.description = ""; //!!!
|
Chris@1
|
156 d.unit = "";
|
Chris@1
|
157 d.hasFixedBinCount = true;
|
Chris@1
|
158 d.binCount = 1;
|
Chris@1
|
159 d.hasKnownExtents = false;
|
Chris@1
|
160 d.isQuantized = false;
|
Chris@1
|
161 d.sampleType = OutputDescriptor::FixedSampleRate;
|
Chris@1
|
162 d.sampleRate = 2; //!!!
|
Chris@1
|
163 d.hasDuration = false;
|
Chris@1
|
164 list.push_back(d);
|
Chris@1
|
165
|
Chris@1
|
166 d.identifier = "curve-vsr";
|
Chris@1
|
167 d.name = "Curve: VariableSampleRate";
|
Chris@1
|
168 d.description = ""; //!!!
|
Chris@1
|
169 d.unit = "";
|
Chris@1
|
170 d.hasFixedBinCount = true;
|
Chris@1
|
171 d.binCount = 1;
|
Chris@1
|
172 d.hasKnownExtents = false;
|
Chris@1
|
173 d.isQuantized = false;
|
Chris@1
|
174 d.sampleType = OutputDescriptor::VariableSampleRate;
|
Chris@1
|
175 d.sampleRate = 0; //!!!
|
Chris@1
|
176 d.hasDuration = false;
|
Chris@1
|
177 list.push_back(d);
|
Chris@1
|
178
|
Chris@0
|
179 return list;
|
Chris@0
|
180 }
|
Chris@0
|
181
|
Chris@0
|
182 bool
|
Chris@0
|
183 VampTestPlugin::initialise(size_t channels, size_t stepSize, size_t blockSize)
|
Chris@0
|
184 {
|
Chris@0
|
185 if (channels < getMinChannelCount() ||
|
Chris@0
|
186 channels > getMaxChannelCount()) return false;
|
Chris@0
|
187
|
Chris@0
|
188 // Real initialisation work goes here!
|
Chris@0
|
189
|
Chris@0
|
190 return true;
|
Chris@0
|
191 }
|
Chris@0
|
192
|
Chris@0
|
193 void
|
Chris@0
|
194 VampTestPlugin::reset()
|
Chris@0
|
195 {
|
Chris@0
|
196 // Clear buffers, reset stored values, etc
|
Chris@0
|
197 }
|
Chris@0
|
198
|
Chris@0
|
199 VampTestPlugin::FeatureSet
|
Chris@0
|
200 VampTestPlugin::process(const float *const *inputBuffers, Vamp::RealTime timestamp)
|
Chris@0
|
201 {
|
Chris@0
|
202 // Do actual work!
|
Chris@0
|
203 return FeatureSet();
|
Chris@0
|
204 }
|
Chris@0
|
205
|
Chris@0
|
206 VampTestPlugin::FeatureSet
|
Chris@0
|
207 VampTestPlugin::getRemainingFeatures()
|
Chris@0
|
208 {
|
Chris@0
|
209 return FeatureSet();
|
Chris@0
|
210 }
|
Chris@0
|
211
|