audacia/src/effects/vamp/LoadVamp.h

66 lines
1.8 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
LoadVamp.h
Chris Cannam
**********************************************************************/
#include "../../Audacity.h"
#if defined(USE_VAMP)
#include "audacity/ModuleInterface.h"
#include "audacity/EffectInterface.h"
#include "audacity/PluginInterface.h"
///////////////////////////////////////////////////////////////////////////////
//
// VampEffectsModule
//
///////////////////////////////////////////////////////////////////////////////
class VampEffectsModule final : public ModuleInterface
{
public:
VampEffectsModule(ModuleManagerInterface *moduleManager, const wxString *path);
virtual ~VampEffectsModule();
// IdentInterface implementatino
wxString GetPath() override;
wxString GetSymbol() override;
wxString GetName() override;
wxString GetVendor() override;
wxString GetVersion() override;
wxString GetDescription() override;
// ModuleInterface implementation
bool Initialize() override;
void Terminate() override;
bool AutoRegisterPlugins(PluginManagerInterface & pm) override;
wxArrayString FindPlugins(PluginManagerInterface & pm) override;
bool RegisterPlugin(PluginManagerInterface & pm, const wxString & path) override;
bool IsPluginValid(const wxString & path, bool bFast) override;
IdentInterface *CreateInstance(const wxString & path) override;
void DeleteInstance(IdentInterface *instance) override;
private:
// VampEffectModule implementation
std::unique_ptr<Vamp::Plugin> FindPlugin(const wxString & wpath,
int & output,
bool & hasParameters);
private:
ModuleManagerInterface *mModMan;
wxString mPath;
};
#endif