comparison PiperAdapter.h @ 47:cedcaa258e22

Support "from" field in list request
author Chris Cannam
date Mon, 07 Nov 2016 14:49:05 +0000
parents b780e56eebb4
children
comparison
equal deleted inserted replaced
46:b780e56eebb4 47:cedcaa258e22
46 namespace piper_vamp_js { //!!! not a good name for this namespace 46 namespace piper_vamp_js { //!!! not a good name for this namespace
47 47
48 class PiperAdapterInterface 48 class PiperAdapterInterface
49 { 49 {
50 public: 50 public:
51 virtual std::string getLibraryName() const = 0;
51 virtual piper_vamp::PluginStaticData getStaticData() const = 0; 52 virtual piper_vamp::PluginStaticData getStaticData() const = 0;
52 virtual piper_vamp::LoadResponse loadPlugin(piper_vamp::LoadRequest r) const = 0; 53 virtual piper_vamp::LoadResponse loadPlugin(piper_vamp::LoadRequest r) const = 0;
53 virtual Vamp::Plugin *createPlugin(float inputSampleRate) const = 0; 54 virtual Vamp::Plugin *createPlugin(float inputSampleRate) const = 0;
54 }; 55 };
55 56
63 protected: 64 protected:
64 PiperAdapterBase(std::string libname) : m_soname(libname) { } 65 PiperAdapterBase(std::string libname) : m_soname(libname) { }
65 66
66 public: 67 public:
67 virtual Vamp::Plugin *createPlugin(float inputSampleRate) const = 0; 68 virtual Vamp::Plugin *createPlugin(float inputSampleRate) const = 0;
69
70 virtual std::string getLibraryName() const override {
71 return m_soname;
72 }
68 73
69 virtual piper_vamp::PluginStaticData getStaticData() const { 74 virtual piper_vamp::PluginStaticData getStaticData() const override {
70 Vamp::Plugin *p = createPlugin(44100.f); 75 Vamp::Plugin *p = createPlugin(44100.f);
71 auto data = piper_vamp::PluginStaticData::fromPlugin 76 auto data = piper_vamp::PluginStaticData::fromPlugin
72 (m_soname + ":" + p->getIdentifier(), 77 (m_soname + ":" + p->getIdentifier(),
73 {}, //!!! todo: category - tricky one that 78 {}, //!!! todo: category - tricky one that
74 p); 79 p);
75 delete p; 80 delete p;
76 return data; 81 return data;
77 } 82 }
78 83
79 virtual piper_vamp::LoadResponse loadPlugin(piper_vamp::LoadRequest r) const { 84 virtual piper_vamp::LoadResponse loadPlugin(piper_vamp::LoadRequest r)
85 const override {
80 86
81 // We assume the caller has guaranteed that the request is for 87 // We assume the caller has guaranteed that the request is for
82 // the correct plugin (so we don't have to check the plugin 88 // the correct plugin (so we don't have to check the plugin
83 // key field here) 89 // key field here)
84 90
128 class PiperAdapter : public PiperAdapterBase<P> 134 class PiperAdapter : public PiperAdapterBase<P>
129 { 135 {
130 public: 136 public:
131 PiperAdapter(std::string libname) : PiperAdapterBase<P>(libname) { } 137 PiperAdapter(std::string libname) : PiperAdapterBase<P>(libname) { }
132 138
133 virtual Vamp::Plugin *createPlugin(float inputSampleRate) const { 139 virtual Vamp::Plugin *createPlugin(float inputSampleRate) const override {
134 return new P(inputSampleRate); 140 return new P(inputSampleRate);
135 } 141 }
136 }; 142 };
137 143
138 } 144 }