Definition at line 72 of file PluginLoader.cpp.
Public Member Functions | |
Impl () | |
virtual | ~Impl () |
PluginKeyList | listPlugins () |
Plugin * | loadPlugin (PluginKey key, float inputSampleRate, int adapterFlags) |
PluginKey | composePluginKey (string libraryName, string identifier) |
PluginCategoryHierarchy | getPluginCategory (PluginKey key) |
string | getLibraryPathForPlugin (PluginKey key) |
Static Public Member Functions | |
static void | setInstanceToClean (PluginLoader *instance) |
Protected Member Functions | |
virtual void | pluginDeleted (PluginDeletionNotifyAdapter *adapter) |
void | enumeratePlugins (PluginKey forPlugin="") |
void | generateTaxonomy () |
bool | decomposePluginKey (PluginKey key, string &libraryName, string &identifier) |
void * | loadLibrary (string path) |
void | unloadLibrary (void *handle) |
void * | lookupInLibrary (void *handle, const char *symbol) |
string | splicePath (string a, string b) |
vector< string > | listFiles (string dir, string ext) |
Protected Attributes | |
map< PluginKey, string > | m_pluginLibraryNameMap |
bool | m_allPluginsEnumerated |
map< PluginKey, PluginCategoryHierarchy > | m_taxonomy |
map< Plugin *, void * > | m_pluginLibraryHandleMap |
Static Protected Attributes | |
static InstanceCleaner | m_cleaner |
Classes | |
class | InstanceCleaner |
class | PluginDeletionNotifyAdapter |
Vamp::HostExt::PluginLoader::Impl::Impl | ( | ) |
Definition at line 195 of file PluginLoader.cpp.
Vamp::HostExt::PluginLoader::Impl::~Impl | ( | ) | [virtual] |
Definition at line 200 of file PluginLoader.cpp.
vector< PluginLoader::PluginKey > Vamp::HostExt::PluginLoader::Impl::listPlugins | ( | ) |
Definition at line 211 of file PluginLoader.cpp.
References enumeratePlugins(), m_allPluginsEnumerated, and m_pluginLibraryNameMap.
Referenced by Vamp::HostExt::PluginLoader::listPlugins().
Plugin * Vamp::HostExt::PluginLoader::Impl::loadPlugin | ( | PluginKey | key, | |
float | inputSampleRate, | |||
int | adapterFlags | |||
) |
Definition at line 354 of file PluginLoader.cpp.
References Vamp::HostExt::PluginLoader::ADAPT_BUFFER_SIZE, Vamp::HostExt::PluginLoader::ADAPT_CHANNEL_COUNT, Vamp::HostExt::PluginLoader::ADAPT_INPUT_DOMAIN, decomposePluginKey(), Vamp::Plugin::FrequencyDomain, Vamp::Plugin::getInputDomain(), getLibraryPathForPlugin(), _VampPluginDescriptor::identifier, loadLibrary(), lookupInLibrary(), m_pluginLibraryHandleMap, unloadLibrary(), and VAMP_API_VERSION.
Referenced by Vamp::HostExt::PluginLoader::loadPlugin().
PluginLoader::PluginKey Vamp::HostExt::PluginLoader::Impl::composePluginKey | ( | string | libraryName, | |
string | identifier | |||
) |
PluginLoader::PluginCategoryHierarchy Vamp::HostExt::PluginLoader::Impl::getPluginCategory | ( | PluginKey | key | ) |
Definition at line 331 of file PluginLoader.cpp.
References generateTaxonomy(), and m_taxonomy.
Referenced by Vamp::HostExt::PluginLoader::getPluginCategory().
string Vamp::HostExt::PluginLoader::Impl::getLibraryPathForPlugin | ( | PluginKey | key | ) |
Definition at line 341 of file PluginLoader.cpp.
References enumeratePlugins(), m_allPluginsEnumerated, and m_pluginLibraryNameMap.
Referenced by Vamp::HostExt::PluginLoader::getLibraryPathForPlugin(), and loadPlugin().
void Vamp::HostExt::PluginLoader::Impl::setInstanceToClean | ( | PluginLoader * | instance | ) | [static] |
Definition at line 205 of file PluginLoader.cpp.
References m_cleaner, and Vamp::HostExt::PluginLoader::Impl::InstanceCleaner::setInstance().
Referenced by Vamp::HostExt::PluginLoader::getInstance().
void Vamp::HostExt::PluginLoader::Impl::pluginDeleted | ( | PluginDeletionNotifyAdapter * | adapter | ) | [protected, virtual] |
Definition at line 607 of file PluginLoader.cpp.
References m_pluginLibraryHandleMap, and unloadLibrary().
Referenced by Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter().
void Vamp::HostExt::PluginLoader::Impl::enumeratePlugins | ( | PluginKey | forPlugin = "" |
) | [protected] |
Definition at line 225 of file PluginLoader.cpp.
References composePluginKey(), decomposePluginKey(), Vamp::PluginHostAdapter::getPluginPath(), _VampPluginDescriptor::identifier, listFiles(), loadLibrary(), lookupInLibrary(), m_allPluginsEnumerated, m_pluginLibraryNameMap, PLUGIN_SUFFIX, splicePath(), unloadLibrary(), and VAMP_API_VERSION.
Referenced by getLibraryPathForPlugin(), and listPlugins().
void Vamp::HostExt::PluginLoader::Impl::generateTaxonomy | ( | ) | [protected] |
Definition at line 421 of file PluginLoader.cpp.
References Vamp::PluginHostAdapter::getPluginPath(), listFiles(), m_taxonomy, and splicePath().
Referenced by getPluginCategory().
bool Vamp::HostExt::PluginLoader::Impl::decomposePluginKey | ( | PluginKey | key, | |
string & | libraryName, | |||
string & | identifier | |||
) | [protected] |
Definition at line 316 of file PluginLoader.cpp.
Referenced by enumeratePlugins(), and loadPlugin().
void * Vamp::HostExt::PluginLoader::Impl::loadLibrary | ( | string | path | ) | [protected] |
Definition at line 509 of file PluginLoader.cpp.
Referenced by enumeratePlugins(), and loadPlugin().
void Vamp::HostExt::PluginLoader::Impl::unloadLibrary | ( | void * | handle | ) | [protected] |
Definition at line 529 of file PluginLoader.cpp.
Referenced by enumeratePlugins(), loadPlugin(), and pluginDeleted().
void * Vamp::HostExt::PluginLoader::Impl::lookupInLibrary | ( | void * | handle, | |
const char * | symbol | |||
) | [protected] |
Definition at line 539 of file PluginLoader.cpp.
Referenced by enumeratePlugins(), and loadPlugin().
string Vamp::HostExt::PluginLoader::Impl::splicePath | ( | string | a, | |
string | b | |||
) | [protected] |
Definition at line 549 of file PluginLoader.cpp.
Referenced by enumeratePlugins(), and generateTaxonomy().
vector< string > Vamp::HostExt::PluginLoader::Impl::listFiles | ( | string | dir, | |
string | ext | |||
) | [protected] |
Definition at line 559 of file PluginLoader.cpp.
Referenced by enumeratePlugins(), and generateTaxonomy().
map<PluginKey, string> Vamp::HostExt::PluginLoader::Impl::m_pluginLibraryNameMap [protected] |
Definition at line 112 of file PluginLoader.cpp.
Referenced by enumeratePlugins(), getLibraryPathForPlugin(), and listPlugins().
bool Vamp::HostExt::PluginLoader::Impl::m_allPluginsEnumerated [protected] |
Definition at line 113 of file PluginLoader.cpp.
Referenced by enumeratePlugins(), getLibraryPathForPlugin(), and listPlugins().
map<PluginKey, PluginCategoryHierarchy> Vamp::HostExt::PluginLoader::Impl::m_taxonomy [protected] |
Definition at line 116 of file PluginLoader.cpp.
Referenced by generateTaxonomy(), and getPluginCategory().
map<Plugin *, void *> Vamp::HostExt::PluginLoader::Impl::m_pluginLibraryHandleMap [protected] |
PluginLoader::Impl::InstanceCleaner Vamp::HostExt::PluginLoader::Impl::m_cleaner [static, protected] |