c@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ c@0: c@0: /* c@0: QM Vamp Plugin Set c@0: c@0: Centre for Digital Music, Queen Mary, University of London. c@0: All rights reserved. c@0: */ c@0: c@0: //!!! This guard inadequate, must be unique to plugin if plugin is to c@0: //be compilable in with app as well as being, well, a plugin c@0: #ifndef _BEAT_DETECT_PLUGIN_H_ c@0: #define _BEAT_DETECT_PLUGIN_H_ c@0: c@0: #include "vamp-sdk/Plugin.h" c@0: c@0: class BeatDetectorData; c@0: c@0: class BeatDetector : public Vamp::Plugin c@0: { c@0: public: c@0: BeatDetector(float inputSampleRate); c@0: virtual ~BeatDetector(); c@0: c@0: bool initialise(size_t channels, size_t stepSize, size_t blockSize); c@0: void reset(); c@0: c@0: InputDomain getInputDomain() const { return TimeDomain; } c@0: c@0: std::string getName() const; c@0: std::string getDescription() const; c@0: std::string getMaker() const; c@0: int getPluginVersion() const; c@0: std::string getCopyright() const; c@0: c@0: ParameterList getParameterDescriptors() const; c@0: float getParameter(std::string) const; c@0: void setParameter(std::string, float); c@0: c@0: size_t getPreferredStepSize() const; c@0: size_t getPreferredBlockSize() const; c@0: c@0: OutputList getOutputDescriptors() const; c@0: c@0: FeatureSet process(float **inputBuffers, Vamp::RealTime timestamp); c@0: c@0: FeatureSet getRemainingFeatures(); c@0: c@0: protected: c@0: BeatDetectorData *m_d; c@0: int m_dfType; c@0: static float m_stepSecs; c@0: }; c@0: c@0: c@0: #endif