/********************************************************************** Audacity: A Digital Audio Editor LoadVamp.h Chris Cannam **********************************************************************/ #include "../../Audacity.h" // for USE_* macros #if defined(USE_VAMP) #include #include "audacity/ModuleInterface.h" #include "audacity/EffectInterface.h" #include "audacity/PluginInterface.h" #include /////////////////////////////////////////////////////////////////////////////// // // VampEffectsModule // /////////////////////////////////////////////////////////////////////////////// class VampEffectsModule final : public ModuleInterface { public: VampEffectsModule(ModuleManagerInterface *moduleManager, const wxString *path); virtual ~VampEffectsModule(); // ComponentInterface implementation PluginPath GetPath() override; ComponentInterfaceSymbol GetSymbol() override; VendorSymbol GetVendor() override; wxString GetVersion() override; wxString GetDescription() override; // ModuleInterface implementation bool Initialize() override; void Terminate() override; const FileExtensions &GetFileExtensions() override; FilePath InstallPath() override { return {}; } bool AutoRegisterPlugins(PluginManagerInterface & pm) override; PluginPaths FindPluginPaths(PluginManagerInterface & pm) override; unsigned DiscoverPluginsAtPath( const PluginPath & path, wxString &errMsg, const RegistrationCallback &callback) override; bool IsPluginValid(const PluginPath & path, bool bFast) override; ComponentInterface *CreateInstance(const PluginPath & path) override; void DeleteInstance(ComponentInterface *instance) override; private: // VampEffectModule implementation std::unique_ptr FindPlugin(const PluginPath & wpath, int & output, bool & hasParameters); private: ModuleManagerInterface *mModMan; PluginPath mPath; }; #endif