cannam@97: cannam@97: // This is a skeleton file for use in creating your own plugin cannam@97: // libraries. Replace MyPlugin and myPlugin throughout with the name cannam@97: // of your first plugin class, and fill in the gaps as appropriate. cannam@97: cannam@97: cannam@97: // Remember to use a different guard symbol in each header! cannam@97: #ifndef _MY_PLUGIN_H_ cannam@97: #define _MY_PLUGIN_H_ cannam@97: cannam@97: #include cannam@97: cannam@97: using std::string; cannam@97: cannam@97: cannam@97: class MyPlugin : public Vamp::Plugin cannam@97: { cannam@97: public: cannam@97: MyPlugin(float inputSampleRate); cannam@97: virtual ~MyPlugin(); cannam@97: cannam@97: string getIdentifier() const; cannam@97: string getName() const; cannam@97: string getDescription() const; cannam@97: string getMaker() const; cannam@97: int getPluginVersion() const; cannam@97: string getCopyright() const; cannam@97: cannam@97: InputDomain getInputDomain() const; cannam@97: size_t getPreferredBlockSize() const; cannam@97: size_t getPreferredStepSize() const; cannam@97: size_t getMinChannelCount() const; cannam@97: size_t getMaxChannelCount() const; cannam@97: cannam@97: ParameterList getParameterDescriptors() const; cannam@97: float getParameter(string identifier) const; cannam@97: void setParameter(string identifier, float value); cannam@97: cannam@97: ProgramList getPrograms() const; cannam@97: string getCurrentProgram() const; cannam@97: void selectProgram(string name); cannam@97: cannam@97: OutputList getOutputDescriptors() const; cannam@97: cannam@97: bool initialise(size_t channels, size_t stepSize, size_t blockSize); cannam@97: void reset(); cannam@97: cannam@97: FeatureSet process(const float *const *inputBuffers, cannam@97: Vamp::RealTime timestamp); cannam@97: cannam@97: FeatureSet getRemainingFeatures(); cannam@97: cannam@97: protected: cannam@97: // plugin-specific data and methods go here cannam@97: }; cannam@97: cannam@97: cannam@97: cannam@97: #endif