c@90: c@90: #ifndef PIPER_CLIENT_H c@90: #define PIPER_CLIENT_H c@90: c@90: #include c@90: c@90: namespace piper { //!!! change c@90: c@92: class PiperPluginStub; c@90: c@92: class PiperLoaderInterface c@90: { c@92: public: c@92: virtual c@92: Vamp::Plugin * c@92: load(std::string key, float inputSampleRate, int adapterFlags) = 0; c@92: }; c@92: c@92: class PiperPluginClientInterface c@92: { c@92: friend class PiperPluginStub; c@90: c@90: protected: c@90: virtual c@90: Vamp::Plugin::OutputList c@92: configure(PiperPluginStub *plugin, c@90: Vamp::HostExt::PluginConfiguration config) = 0; c@90: c@90: virtual c@90: Vamp::Plugin::FeatureSet c@92: process(PiperPluginStub *plugin, c@90: std::vector > inputBuffers, c@90: Vamp::RealTime timestamp) = 0; c@90: c@90: virtual Vamp::Plugin::FeatureSet c@92: finish(PiperPluginStub *plugin) = 0; c@91: c@91: virtual c@91: void c@92: reset(PiperPluginStub *plugin, c@91: Vamp::HostExt::PluginConfiguration config) = 0; c@90: }; c@90: c@90: } c@90: c@90: #endif