1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-17 08:30:06 +02:00
audacity/src/effects/vamp/LoadVamp.h
Paul Licameli 74128156bf ModuleInterface::GetFileExtensions() returns const reference...
... avoiding repeated array allocation
2019-05-16 12:30:23 -04:00

76 lines
2.0 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
LoadVamp.h
Chris Cannam
**********************************************************************/
#include "../../Audacity.h" // for USE_* macros
#if defined(USE_VAMP)
#include <memory>
#include "audacity/ModuleInterface.h"
#include "audacity/EffectInterface.h"
#include "audacity/PluginInterface.h"
#include <vamp-hostsdk/PluginLoader.h>
///////////////////////////////////////////////////////////////////////////////
//
// 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<Vamp::Plugin> FindPlugin(const PluginPath & wpath,
int & output,
bool & hasParameters);
private:
ModuleManagerInterface *mModMan;
PluginPath mPath;
};
#endif