Mercurial > hg > piper-vamp-js
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 } |