Chris@0: Chris@0: // This is a skeleton file for use in creating your own plugin Chris@0: // libraries. Replace MyPlugin and myPlugin throughout with the name Chris@0: // of your first plugin class, and fill in the gaps as appropriate. Chris@0: Chris@0: Chris@0: #include Chris@0: #include Chris@0: Chris@0: #include "FChTransformF0gram.h" Chris@0: Chris@15: class FChTransformAdapter : public Vamp::PluginAdapterBase Chris@15: { Chris@15: public: Chris@15: FChTransformAdapter(FChTransformF0gram::ProcessingMode mode) : Chris@15: PluginAdapterBase(), Chris@15: m_mode(mode) Chris@15: { } Chris@0: Chris@15: virtual ~FChTransformAdapter() { } Chris@0: Chris@15: protected: Chris@15: Vamp::Plugin *createPlugin(float inputSampleRate) { Chris@15: return new FChTransformF0gram(m_mode, inputSampleRate); Chris@15: } Chris@0: Chris@15: FChTransformF0gram::ProcessingMode m_mode; Chris@15: }; Chris@15: Chris@15: static FChTransformAdapter f0gram(FChTransformF0gram::ModeF0Gram); Chris@15: static FChTransformAdapter spectrogram(FChTransformF0gram::ModeSpectrogram); Chris@15: static FChTransformAdapter rough(FChTransformF0gram::ModeRoughSpectrogram); Chris@0: Chris@0: // This is the entry-point for the library, and the only function that Chris@0: // needs to be publicly exported. Chris@0: Chris@0: const VampPluginDescriptor * Chris@0: vampGetPluginDescriptor(unsigned int version, unsigned int index) Chris@0: { Chris@0: if (version < 1) return 0; Chris@0: Chris@0: // Return a different plugin adaptor's descriptor for each index, Chris@0: // and return 0 for the first index after you run out of plugins. Chris@0: // (That's how the host finds out how many plugins are in this Chris@0: // library.) Chris@0: Chris@0: switch (index) { Chris@15: case 0: return f0gram.getDescriptor(); Chris@15: case 1: return spectrogram.getDescriptor(); Chris@15: case 2: return rough.getDescriptor(); Chris@0: default: return 0; Chris@0: } Chris@0: } Chris@0: Chris@0: