Mercurial > hg > piper-vamp-js
diff src/PiperAdapter.h @ 152:c43d2e93153f
Provide category and output static info
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Tue, 13 Jun 2017 17:25:47 +0100 |
parents | c0256c2debf5 |
children |
line wrap: on
line diff
--- a/src/PiperAdapter.h Tue Mar 14 16:07:46 2017 +0000 +++ b/src/PiperAdapter.h Tue Jun 13 17:25:47 2017 +0100 @@ -38,6 +38,7 @@ #include "vamp-support/PluginStaticData.h" #include "vamp-support/PluginConfiguration.h" #include "vamp-support/RequestResponse.h" +#include "vamp-support/StaticOutputDescriptor.h" #include <vamp-hostsdk/PluginInputDomainAdapter.h> #include <vamp-hostsdk/PluginBufferingAdapter.h> @@ -62,7 +63,12 @@ const int adaptBufferSize = 0x04; protected: - PiperAdapterBase(std::string libname) : m_soname(libname) { } + PiperAdapterBase(std::string libname, + std::vector<std::string> category = {}, + piper_vamp::StaticOutputInfo staticOutputInfo = {}) : + m_soname(libname), + m_category(category), + m_staticOutputInfo(staticOutputInfo) { } public: virtual std::string getLibraryName() const override { @@ -73,8 +79,9 @@ Vamp::Plugin *p = createPlugin(44100.f); auto data = piper_vamp::PluginStaticData::fromPlugin (m_soname + ":" + p->getIdentifier(), - {}, //!!! todo: category - tricky one that + m_category, p); + data.staticOutputInfo = m_staticOutputInfo; delete p; return data; } @@ -107,8 +114,9 @@ response.staticData = piper_vamp::PluginStaticData::fromPlugin (m_soname + ":" + p->getIdentifier(), - {}, //!!! todo: category - tricky one that + m_category, p); + response.staticData.staticOutputInfo = m_staticOutputInfo; int defaultChannels = 0; if (p->getMinChannelCount() == p->getMaxChannelCount()) { @@ -141,13 +149,18 @@ private: std::string m_soname; + std::vector<std::string> m_category; + piper_vamp::StaticOutputInfo m_staticOutputInfo; }; template <typename P> class PiperAdapter : public PiperAdapterBase<P> { public: - PiperAdapter(std::string libname) : PiperAdapterBase<P>(libname) { } + PiperAdapter(std::string libname, + std::vector<std::string> category = {}, + piper_vamp::StaticOutputInfo staticOutputInfo = {}) : + PiperAdapterBase<P>(libname, category, staticOutputInfo) { } virtual Vamp::Plugin *createPlugin(float inputSampleRate) const override { return new P(inputSampleRate);