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