Chris@0: Chris@0: Chris@0: #include "VampTestPlugin.h" Chris@0: Chris@0: Chris@0: VampTestPlugin::VampTestPlugin(float inputSampleRate) : Chris@0: Plugin(inputSampleRate) Chris@0: // Also be sure to set your plugin parameters (presumably stored Chris@0: // in member variables) to their default values here -- the host Chris@0: // will not do that for you Chris@0: { Chris@0: } Chris@0: Chris@0: VampTestPlugin::~VampTestPlugin() Chris@0: { Chris@0: } Chris@0: Chris@0: string Chris@0: VampTestPlugin::getIdentifier() const Chris@0: { Chris@0: return "vamp-test-plugin"; Chris@0: } Chris@0: Chris@0: string Chris@0: VampTestPlugin::getName() const Chris@0: { Chris@0: return "Vamp Test Plugin"; Chris@0: } Chris@0: Chris@0: string Chris@0: VampTestPlugin::getDescription() const Chris@0: { Chris@0: return "Test plugin for hosts handling various output types"; Chris@0: } Chris@0: Chris@0: string Chris@0: VampTestPlugin::getMaker() const Chris@0: { Chris@0: return "Chris Cannam"; Chris@0: } Chris@0: Chris@0: int Chris@0: VampTestPlugin::getPluginVersion() const Chris@0: { Chris@0: return 1; Chris@0: } Chris@0: Chris@0: string Chris@0: VampTestPlugin::getCopyright() const Chris@0: { Chris@0: return "BSD"; Chris@0: } Chris@0: Chris@0: VampTestPlugin::InputDomain Chris@0: VampTestPlugin::getInputDomain() const Chris@0: { Chris@0: return TimeDomain; Chris@0: } Chris@0: Chris@0: size_t Chris@0: VampTestPlugin::getPreferredBlockSize() const Chris@0: { Chris@0: return 0; Chris@0: } Chris@0: Chris@0: size_t Chris@0: VampTestPlugin::getPreferredStepSize() const Chris@0: { Chris@0: return 0; Chris@0: } Chris@0: Chris@0: size_t Chris@0: VampTestPlugin::getMinChannelCount() const Chris@0: { Chris@0: return 1; Chris@0: } Chris@0: Chris@0: size_t Chris@0: VampTestPlugin::getMaxChannelCount() const Chris@0: { Chris@0: return 1; Chris@0: } Chris@0: Chris@0: VampTestPlugin::ParameterList Chris@0: VampTestPlugin::getParameterDescriptors() const Chris@0: { Chris@0: ParameterList list; Chris@0: return list; Chris@0: } Chris@0: Chris@0: float Chris@0: VampTestPlugin::getParameter(string identifier) const Chris@0: { Chris@0: return 0; Chris@0: } Chris@0: Chris@0: void Chris@0: VampTestPlugin::setParameter(string identifier, float value) Chris@0: { Chris@0: } Chris@0: Chris@0: VampTestPlugin::ProgramList Chris@0: VampTestPlugin::getPrograms() const Chris@0: { Chris@0: ProgramList list; Chris@0: return list; Chris@0: } Chris@0: Chris@0: string Chris@0: VampTestPlugin::getCurrentProgram() const Chris@0: { Chris@0: return ""; // no programs Chris@0: } Chris@0: Chris@0: void Chris@0: VampTestPlugin::selectProgram(string name) Chris@0: { Chris@0: } Chris@0: Chris@0: VampTestPlugin::OutputList Chris@0: VampTestPlugin::getOutputDescriptors() const Chris@0: { Chris@0: OutputList list; Chris@0: Chris@0: OutputDescriptor d; Chris@1: Chris@1: //!!! review these: extents, units etc Chris@1: Chris@1: d.identifier = "instants"; Chris@1: d.name = "Instants"; Chris@1: d.description = ""; //!!! Chris@1: d.unit = ""; Chris@1: d.hasFixedBinCount = true; Chris@1: d.binCount = 0; Chris@1: d.hasKnownExtents = false; Chris@1: d.isQuantized = false; Chris@1: d.sampleType = OutputDescriptor::VariableSampleRate; Chris@1: d.hasDuration = false; Chris@1: list.push_back(d); Chris@1: Chris@1: d.identifier = "curve-oss"; Chris@1: d.name = "Curve: OneSamplePerStep"; Chris@1: d.description = ""; //!!! Chris@0: d.unit = ""; Chris@0: d.hasFixedBinCount = true; Chris@0: d.binCount = 1; Chris@0: d.hasKnownExtents = false; Chris@0: d.isQuantized = false; Chris@0: d.sampleType = OutputDescriptor::OneSamplePerStep; Chris@0: d.hasDuration = false; Chris@0: list.push_back(d); Chris@0: Chris@1: d.identifier = "curve-fsr"; Chris@1: d.name = "Curve: FixedSampleRate"; Chris@1: d.description = ""; //!!! Chris@1: d.unit = ""; Chris@1: d.hasFixedBinCount = true; Chris@1: d.binCount = 1; Chris@1: d.hasKnownExtents = false; Chris@1: d.isQuantized = false; Chris@1: d.sampleType = OutputDescriptor::FixedSampleRate; Chris@1: d.sampleRate = 2; //!!! Chris@1: d.hasDuration = false; Chris@1: list.push_back(d); Chris@1: Chris@1: d.identifier = "curve-vsr"; Chris@1: d.name = "Curve: VariableSampleRate"; Chris@1: d.description = ""; //!!! Chris@1: d.unit = ""; Chris@1: d.hasFixedBinCount = true; Chris@1: d.binCount = 1; Chris@1: d.hasKnownExtents = false; Chris@1: d.isQuantized = false; Chris@1: d.sampleType = OutputDescriptor::VariableSampleRate; Chris@1: d.sampleRate = 0; //!!! Chris@1: d.hasDuration = false; Chris@1: list.push_back(d); Chris@1: Chris@0: return list; Chris@0: } Chris@0: Chris@0: bool Chris@0: VampTestPlugin::initialise(size_t channels, size_t stepSize, size_t blockSize) Chris@0: { Chris@0: if (channels < getMinChannelCount() || Chris@0: channels > getMaxChannelCount()) return false; Chris@0: Chris@0: // Real initialisation work goes here! Chris@0: Chris@0: return true; Chris@0: } Chris@0: Chris@0: void Chris@0: VampTestPlugin::reset() Chris@0: { Chris@0: // Clear buffers, reset stored values, etc Chris@0: } Chris@0: Chris@0: VampTestPlugin::FeatureSet Chris@0: VampTestPlugin::process(const float *const *inputBuffers, Vamp::RealTime timestamp) Chris@0: { Chris@0: // Do actual work! Chris@0: return FeatureSet(); Chris@0: } Chris@0: Chris@0: VampTestPlugin::FeatureSet Chris@0: VampTestPlugin::getRemainingFeatures() Chris@0: { Chris@0: return FeatureSet(); Chris@0: } Chris@0: