Chris@0
|
1
|
Chris@0
|
2
|
Chris@0
|
3 #include <vamp/vamp.h>
|
Chris@0
|
4 #include <vamp-sdk/PluginAdapter.h>
|
Chris@0
|
5
|
Chris@0
|
6 #include "VampTestPlugin.h"
|
Chris@0
|
7
|
Chris@20
|
8 class Adapter : public Vamp::PluginAdapterBase
|
Chris@20
|
9 {
|
Chris@20
|
10 public:
|
Chris@20
|
11 Adapter(bool freq) :
|
Chris@20
|
12 PluginAdapterBase(),
|
Chris@20
|
13 m_freq(freq) { }
|
Chris@0
|
14
|
Chris@20
|
15 virtual ~Adapter() { }
|
Chris@0
|
16
|
Chris@20
|
17 protected:
|
Chris@20
|
18 bool m_freq;
|
Chris@20
|
19
|
Chris@20
|
20 Vamp::Plugin *createPlugin(float inputSampleRate) {
|
Chris@20
|
21 return new VampTestPlugin(inputSampleRate, m_freq);
|
Chris@20
|
22 }
|
Chris@20
|
23 };
|
Chris@20
|
24
|
Chris@20
|
25 static Adapter timeAdapter(false);
|
Chris@20
|
26 static Adapter freqAdapter(true);
|
Chris@0
|
27
|
Chris@0
|
28 const VampPluginDescriptor *
|
Chris@0
|
29 vampGetPluginDescriptor(unsigned int version, unsigned int index)
|
Chris@0
|
30 {
|
Chris@0
|
31 if (version < 1) return 0;
|
Chris@0
|
32
|
Chris@0
|
33 // Return a different plugin adaptor's descriptor for each index,
|
Chris@0
|
34 // and return 0 for the first index after you run out of plugins.
|
Chris@0
|
35 // (That's how the host finds out how many plugins are in this
|
Chris@0
|
36 // library.)
|
Chris@0
|
37
|
Chris@0
|
38 switch (index) {
|
Chris@20
|
39 case 0: return timeAdapter.getDescriptor();
|
Chris@20
|
40 case 1: return freqAdapter.getDescriptor();
|
Chris@0
|
41 default: return 0;
|
Chris@0
|
42 }
|
Chris@0
|
43 }
|
Chris@0
|
44
|
Chris@0
|
45
|