view plugins.cpp @ 33:b21704074c9c spect tip

Ensure default parameter values match the actual internal defaults
author Chris Cannam
date Fri, 07 Feb 2020 11:49:39 +0000
parents 0a860992b4f4
children
line wrap: on
line source

// This is a skeleton file for use in creating your own plugin
// libraries.  Replace MyPlugin and myPlugin throughout with the name
// of your first plugin class, and fill in the gaps as appropriate.


#include <vamp/vamp.h>
#include <vamp-sdk/PluginAdapter.h>

#include "FChTransformF0gram.h"

class FChTransformAdapter : public Vamp::PluginAdapterBase
{
public:
    FChTransformAdapter(FChTransformF0gram::ProcessingMode mode) :
        PluginAdapterBase(),
        m_mode(mode)
    { }

    virtual ~FChTransformAdapter() { }

protected:
    Vamp::Plugin *createPlugin(float inputSampleRate) {
        return new FChTransformF0gram(m_mode, inputSampleRate);
    }

    FChTransformF0gram::ProcessingMode m_mode;
};

static FChTransformAdapter f0gram(FChTransformF0gram::ModeF0Gram);
static FChTransformAdapter spectrogram(FChTransformF0gram::ModeSpectrogram);
static FChTransformAdapter rough(FChTransformF0gram::ModeRoughSpectrogram);

// This is the entry-point for the library, and the only function that
// needs to be publicly exported.

const VampPluginDescriptor *
vampGetPluginDescriptor(unsigned int version, unsigned int index)
{
    if (version < 1) return 0;

    // Return a different plugin adaptor's descriptor for each index,
    // and return 0 for the first index after you run out of plugins.
    // (That's how the host finds out how many plugins are in this
    // library.)

    switch (index) {
    case  0: return f0gram.getDescriptor();
    case  1: return spectrogram.getDescriptor();
    case  2: return rough.getDescriptor();
    default: return 0;
    }
}