FeatureExtractionPluginFactory type for Vamp plugins hosted in-process. More...

#include <NativeVampPluginFactory.h>

Inheritance diagram for NativeVampPluginFactory:
Inheritance graph
Collaboration diagram for NativeVampPluginFactory:
Collaboration graph

Public Member Functions

virtual ~NativeVampPluginFactory ()
 
virtual std::vector< QString > getPluginIdentifiers (QString &errorMessage) override
 Return all installed plugin identifiers. More...
 
virtual piper_vamp::PluginStaticData getPluginStaticData (QString identifier) override
 Return static data for the given plugin. More...
 
virtual std::shared_ptr< Vamp::Plugin > instantiatePlugin (QString identifier, sv_samplerate_t inputSampleRate) override
 Instantiate (load) and return pointer to the plugin with the given identifier, at the given sample rate. More...
 
virtual QString getPluginCategory (QString identifier) override
 Get category metadata about a plugin (without instantiating it). More...
 
virtual QString getPluginLibraryPath (QString identifier) override
 Get the full file path (including both directory and filename) of the library file that provides a given plugin identifier. More...
 

Static Public Member Functions

static FeatureExtractionPluginFactoryinstance ()
 

Protected Member Functions

void pluginDeleted (Vamp::Plugin *)
 
QString findPluginFile (QString soname, QString inDir="")
 
std::vector< QString > getPluginPath ()
 
void generateTaxonomy ()
 

Protected Attributes

QMutex m_mutex
 
std::vector< QString > m_pluginPath
 
std::vector< QString > m_identifiers
 
std::map< QString, QString > m_taxonomy
 
std::map< QString, piper_vamp::PluginStaticData > m_pluginData
 
std::map< QString, QString > m_libraries
 
std::map< Vamp::Plugin *, void * > m_handleMap
 

Friends

class PluginDeletionNotifyAdapter
 

Detailed Description

FeatureExtractionPluginFactory type for Vamp plugins hosted in-process.

Definition at line 32 of file NativeVampPluginFactory.h.

Constructor & Destructor Documentation

virtual NativeVampPluginFactory::~NativeVampPluginFactory ( )
inlinevirtual

Member Function Documentation

vector< QString > NativeVampPluginFactory::getPluginIdentifiers ( QString &  errorMsg)
overridevirtual
piper_vamp::PluginStaticData NativeVampPluginFactory::getPluginStaticData ( QString  ident)
overridevirtual

Return static data for the given plugin.

Implements FeatureExtractionPluginFactory.

Definition at line 467 of file NativeVampPluginFactory.cpp.

References PluginIdentifier::parseIdentifier().

Referenced by ~NativeVampPluginFactory().

std::shared_ptr< Vamp::Plugin > NativeVampPluginFactory::instantiatePlugin ( QString  identifier,
sv_samplerate_t  inputSampleRate 
)
overridevirtual

Instantiate (load) and return pointer to the plugin with the given identifier, at the given sample rate.

We don't set blockSize or channels on this – they're negotiated and handled via initialize() on the plugin itself after loading.

Implements FeatureExtractionPluginFactory.

Definition at line 301 of file NativeVampPluginFactory.cpp.

References DLCLOSE, DLERROR, DLOPEN, DLSYM, PluginIdentifier::parseIdentifier(), SVCERR, and SVDEBUG.

Referenced by ~NativeVampPluginFactory().

QString NativeVampPluginFactory::getPluginCategory ( QString  identifier)
overridevirtual

Get category metadata about a plugin (without instantiating it).

Implements FeatureExtractionPluginFactory.

Definition at line 412 of file NativeVampPluginFactory.cpp.

Referenced by ~NativeVampPluginFactory().

QString NativeVampPluginFactory::getPluginLibraryPath ( QString  identifier)
overridevirtual

Get the full file path (including both directory and filename) of the library file that provides a given plugin identifier.

Note getPluginIdentifiers() must have been called before this has access to the necessary information.

Implements FeatureExtractionPluginFactory.

Definition at line 418 of file NativeVampPluginFactory.cpp.

Referenced by ~NativeVampPluginFactory().

void NativeVampPluginFactory::pluginDeleted ( Vamp::Plugin *  plugin)
protected

Definition at line 388 of file NativeVampPluginFactory.cpp.

References DLCLOSE, SVCERR, and SVDEBUG.

QString NativeVampPluginFactory::findPluginFile ( QString  soname,
QString  inDir = "" 
)
protected

Definition at line 216 of file NativeVampPluginFactory.cpp.

References PLUGIN_GLOB, and SVCERR.

vector< QString > NativeVampPluginFactory::getPluginPath ( )
protected

Definition at line 70 of file NativeVampPluginFactory.cpp.

void NativeVampPluginFactory::generateTaxonomy ( )
protected

Definition at line 424 of file NativeVampPluginFactory.cpp.

References PluginIdentifier::canonicalise().

Friends And Related Function Documentation

friend class PluginDeletionNotifyAdapter
friend

Definition at line 59 of file NativeVampPluginFactory.h.

Member Data Documentation

QMutex NativeVampPluginFactory::m_mutex
protected

Definition at line 52 of file NativeVampPluginFactory.h.

std::vector<QString> NativeVampPluginFactory::m_pluginPath
protected

Definition at line 53 of file NativeVampPluginFactory.h.

std::vector<QString> NativeVampPluginFactory::m_identifiers
protected

Definition at line 54 of file NativeVampPluginFactory.h.

std::map<QString, QString> NativeVampPluginFactory::m_taxonomy
protected

Definition at line 55 of file NativeVampPluginFactory.h.

std::map<QString, piper_vamp::PluginStaticData> NativeVampPluginFactory::m_pluginData
protected

Definition at line 56 of file NativeVampPluginFactory.h.

std::map<QString, QString> NativeVampPluginFactory::m_libraries
protected

Definition at line 57 of file NativeVampPluginFactory.h.

std::map<Vamp::Plugin *, void *> NativeVampPluginFactory::m_handleMap
protected

Definition at line 61 of file NativeVampPluginFactory.h.


The documentation for this class was generated from the following files: