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