svcore
1.9
|
#include <LADSPAPluginFactory.h>
Public Member Functions | |
virtual | ~LADSPAPluginFactory () |
virtual void | discoverPlugins () |
Look up the plugin path and find the plugins in it. | |
virtual const std::vector < QString > & | getPluginIdentifiers () const |
Return a reference to a list of all plugin identifiers that can be created by this factory. | |
virtual void | enumeratePlugins (std::vector< QString > &list) |
Append to the given list descriptions of all the available plugins and their ports. | |
virtual const RealTimePluginDescriptor * | getPluginDescriptor (QString identifier) const |
Get some basic information about a plugin (rapidly). | |
virtual RealTimePluginInstance * | instantiatePlugin (QString identifier, int clientId, int position, unsigned int sampleRate, unsigned int blockSize, unsigned int channels) |
Instantiate a plugin. | |
virtual QString | getPluginCategory (QString identifier) |
Get category metadata about a plugin (without instantiating it). | |
float | getPortMinimum (const LADSPA_Descriptor *, int port) |
float | getPortMaximum (const LADSPA_Descriptor *, int port) |
float | getPortDefault (const LADSPA_Descriptor *, int port) |
float | getPortQuantization (const LADSPA_Descriptor *, int port) |
int | getPortDisplayHint (const LADSPA_Descriptor *, int port) |
Static Public Member Functions | |
static RealTimePluginFactory * | instance (QString pluginType) |
static RealTimePluginFactory * | instanceFor (QString identifier) |
static std::vector< QString > | getAllPluginIdentifiers () |
static void | enumerateAllPlugins (std::vector< QString > &) |
static void | setSampleRate (int sampleRate) |
Protected Types | |
typedef std::map< QString, void * > | LibraryHandleMap |
Protected Member Functions | |
LADSPAPluginFactory () | |
virtual std::vector< QString > | getPluginPath () |
virtual std::vector< QString > | getLRDFPath (QString &baseUri) |
virtual void | discoverPluginsFrom (QString soName) |
virtual void | generateTaxonomy (QString uri, QString base) |
virtual void | generateFallbackCategories () |
virtual void | releasePlugin (RealTimePluginInstance *, QString) |
virtual const LADSPA_Descriptor * | getLADSPADescriptor (QString identifier) |
void | loadLibrary (QString soName) |
void | unloadLibrary (QString soName) |
void | unloadUnusedLibraries () |
Protected Attributes | |
std::vector< QString > | m_identifiers |
std::map< QString, RealTimePluginDescriptor * > | m_rtDescriptors |
std::map< QString, QString > | m_taxonomy |
std::map< unsigned long, QString > | m_lrdfTaxonomy |
std::map< unsigned long, std::map< int, float > > | m_portDefaults |
std::set < RealTimePluginInstance * > | m_instances |
LibraryHandleMap | m_libraryHandles |
Static Protected Attributes | |
static int | m_sampleRate = 48000 |
Friends | |
class | RealTimePluginFactory |
class | RealTimePluginInstance |
Definition at line 34 of file LADSPAPluginFactory.h.
typedef std::map<QString, void *> LADSPAPluginFactory::LibraryHandleMap [protected] |
Definition at line 91 of file LADSPAPluginFactory.h.
LADSPAPluginFactory::~LADSPAPluginFactory | ( | ) | [virtual] |
Definition at line 51 of file LADSPAPluginFactory.cpp.
References m_instances, and unloadUnusedLibraries().
LADSPAPluginFactory::LADSPAPluginFactory | ( | ) | [protected] |
Definition at line 44 of file LADSPAPluginFactory.cpp.
void LADSPAPluginFactory::discoverPlugins | ( | ) | [virtual] |
Look up the plugin path and find the plugins in it.
Called automatically after construction of a factory.
Implements RealTimePluginFactory.
Definition at line 632 of file LADSPAPluginFactory.cpp.
References discoverPluginsFrom(), generateFallbackCategories(), generateTaxonomy(), getLRDFPath(), getPluginPath(), and PLUGIN_GLOB.
Referenced by RealTimePluginFactory::instance().
const std::vector< QString > & LADSPAPluginFactory::getPluginIdentifiers | ( | ) | const [virtual] |
Return a reference to a list of all plugin identifiers that can be created by this factory.
Implements RealTimePluginFactory.
Definition at line 67 of file LADSPAPluginFactory.cpp.
References m_identifiers.
void LADSPAPluginFactory::enumeratePlugins | ( | std::vector< QString > & | list | ) | [virtual] |
Append to the given list descriptions of all the available plugins and their ports.
This is in a standard format, see the LADSPA implementation for details.
Implements RealTimePluginFactory.
Reimplemented in DSSIPluginFactory.
Definition at line 73 of file LADSPAPluginFactory.cpp.
References PortType::Audio, PortType::Control, getLADSPADescriptor(), getPortDefault(), getPortDisplayHint(), getPortMaximum(), getPortMinimum(), PortType::Input, m_identifiers, m_taxonomy, PortType::Output, and unloadUnusedLibraries().
const RealTimePluginDescriptor * LADSPAPluginFactory::getPluginDescriptor | ( | QString | identifier | ) | const [virtual] |
Get some basic information about a plugin (rapidly).
Implements RealTimePluginFactory.
Definition at line 135 of file LADSPAPluginFactory.cpp.
References m_rtDescriptors.
RealTimePluginInstance * LADSPAPluginFactory::instantiatePlugin | ( | QString | identifier, |
int | clientId, | ||
int | position, | ||
unsigned int | sampleRate, | ||
unsigned int | blockSize, | ||
unsigned int | channels | ||
) | [virtual] |
Instantiate a plugin.
Implements RealTimePluginFactory.
Reimplemented in DSSIPluginFactory.
Definition at line 331 of file LADSPAPluginFactory.cpp.
References getLADSPADescriptor(), RealTimePluginFactory::instance(), m_instances, and SVDEBUG.
QString LADSPAPluginFactory::getPluginCategory | ( | QString | identifier | ) | [virtual] |
Get category metadata about a plugin (without instantiating it).
Implements RealTimePluginFactory.
Definition at line 890 of file LADSPAPluginFactory.cpp.
References m_taxonomy.
float LADSPAPluginFactory::getPortMinimum | ( | const LADSPA_Descriptor * | descriptor, |
int | port | ||
) |
Definition at line 148 of file LADSPAPluginFactory.cpp.
References RealTimePluginFactory::m_sampleRate.
Referenced by DSSIPluginFactory::enumeratePlugins(), enumeratePlugins(), LADSPAPluginInstance::getParameterDescriptors(), DSSIPluginInstance::getParameterDescriptors(), getPortDefault(), getPortQuantization(), LADSPAPluginInstance::setParameterValue(), and DSSIPluginInstance::setParameterValue().
float LADSPAPluginFactory::getPortMaximum | ( | const LADSPA_Descriptor * | descriptor, |
int | port | ||
) |
Definition at line 175 of file LADSPAPluginFactory.cpp.
References RealTimePluginFactory::m_sampleRate.
Referenced by DSSIPluginFactory::enumeratePlugins(), enumeratePlugins(), LADSPAPluginInstance::getParameterDescriptors(), DSSIPluginInstance::getParameterDescriptors(), getPortDefault(), getPortQuantization(), LADSPAPluginInstance::setParameterValue(), and DSSIPluginInstance::setParameterValue().
float LADSPAPluginFactory::getPortDefault | ( | const LADSPA_Descriptor * | descriptor, |
int | port | ||
) |
!! No -- the min and max have already been multiplied by the rate,
Definition at line 198 of file LADSPAPluginFactory.cpp.
References Preferences::getInstance(), getPortMaximum(), getPortMinimum(), Preferences::getTuningFrequency(), and m_portDefaults.
Referenced by LADSPAPluginInstance::connectPorts(), DSSIPluginInstance::connectPorts(), DSSIPluginFactory::enumeratePlugins(), enumeratePlugins(), LADSPAPluginInstance::getParameterDefault(), DSSIPluginInstance::getParameterDefault(), LADSPAPluginInstance::getParameterDescriptors(), and DSSIPluginInstance::getParameterDescriptors().
float LADSPAPluginFactory::getPortQuantization | ( | const LADSPA_Descriptor * | descriptor, |
int | port | ||
) |
Definition at line 302 of file LADSPAPluginFactory.cpp.
References getPortDisplayHint(), getPortMaximum(), getPortMinimum(), PortHint::Integer, and PortHint::Toggled.
Referenced by LADSPAPluginInstance::getParameterDescriptors(), and DSSIPluginInstance::getParameterDescriptors().
int LADSPAPluginFactory::getPortDisplayHint | ( | const LADSPA_Descriptor * | descriptor, |
int | port | ||
) |
Definition at line 316 of file LADSPAPluginFactory.cpp.
References PortHint::Integer, PortHint::Logarithmic, PortHint::NoHint, and PortHint::Toggled.
Referenced by DSSIPluginFactory::enumeratePlugins(), enumeratePlugins(), LADSPAPluginInstance::getParameterDisplayHint(), DSSIPluginInstance::getParameterDisplayHint(), and getPortQuantization().
std::vector< QString > LADSPAPluginFactory::getPluginPath | ( | ) | [protected, virtual] |
Reimplemented in DSSIPluginFactory.
Definition at line 560 of file LADSPAPluginFactory.cpp.
References DEFAULT_LADSPA_PATH, and PATH_SEPARATOR.
Referenced by discoverPlugins(), generateFallbackCategories(), getLRDFPath(), and loadLibrary().
std::vector< QString > LADSPAPluginFactory::getLRDFPath | ( | QString & | baseUri | ) | [protected, virtual] |
Reimplemented in DSSIPluginFactory.
Definition at line 608 of file LADSPAPluginFactory.cpp.
References getPluginPath().
Referenced by discoverPlugins().
void LADSPAPluginFactory::discoverPluginsFrom | ( | QString | soName | ) | [protected, virtual] |
Reimplemented in DSSIPluginFactory.
Definition at line 683 of file LADSPAPluginFactory.cpp.
References RealTimePluginDescriptor::audioInputPortCount, RealTimePluginDescriptor::audioOutputPortCount, RealTimePluginDescriptor::category, RealTimePluginDescriptor::controlOutputPortCount, RealTimePluginDescriptor::controlOutputPortNames, RealTimePluginDescriptor::copyright, PluginIdentifier::createIdentifier(), DLCLOSE, DLERROR, DLOPEN, DLSYM, RealTimePluginDescriptor::isSynth, RealTimePluginDescriptor::label, m_identifiers, m_lrdfTaxonomy, m_portDefaults, m_rtDescriptors, m_taxonomy, RealTimePluginDescriptor::maker, RealTimePluginDescriptor::name, and RealTimePluginDescriptor::parameterCount.
Referenced by discoverPlugins().
void LADSPAPluginFactory::generateTaxonomy | ( | QString | uri, |
QString | base | ||
) | [protected, virtual] |
Definition at line 860 of file LADSPAPluginFactory.cpp.
References m_lrdfTaxonomy.
Referenced by discoverPlugins().
void LADSPAPluginFactory::generateFallbackCategories | ( | ) | [protected, virtual] |
Definition at line 812 of file LADSPAPluginFactory.cpp.
References PluginIdentifier::canonicalise(), getPluginPath(), and m_taxonomy.
Referenced by discoverPlugins().
void LADSPAPluginFactory::releasePlugin | ( | RealTimePluginInstance * | instance, |
QString | identifier | ||
) | [protected, virtual] |
Implements RealTimePluginFactory.
Definition at line 363 of file LADSPAPluginFactory.cpp.
References PluginIdentifier::BUILTIN_PLUGIN_SONAME, m_instances, PluginIdentifier::parseIdentifier(), SVDEBUG, and unloadLibrary().
const LADSPA_Descriptor * LADSPAPluginFactory::getLADSPADescriptor | ( | QString | identifier | ) | [protected, virtual] |
Reimplemented in DSSIPluginFactory.
Definition at line 410 of file LADSPAPluginFactory.cpp.
References DLSYM, loadLibrary(), m_libraryHandles, and PluginIdentifier::parseIdentifier().
Referenced by enumeratePlugins(), and instantiatePlugin().
void LADSPAPluginFactory::loadLibrary | ( | QString | soName | ) | [protected] |
Definition at line 447 of file LADSPAPluginFactory.cpp.
References DLERROR, DLOPEN, getPluginPath(), m_libraryHandles, PLUGIN_GLOB, and SVDEBUG.
Referenced by DSSIPluginFactory::getDSSIDescriptor(), and getLADSPADescriptor().
void LADSPAPluginFactory::unloadLibrary | ( | QString | soName | ) | [protected] |
Definition at line 508 of file LADSPAPluginFactory.cpp.
References DLCLOSE, and m_libraryHandles.
Referenced by releasePlugin(), and unloadUnusedLibraries().
void LADSPAPluginFactory::unloadUnusedLibraries | ( | ) | [protected] |
Definition at line 519 of file LADSPAPluginFactory.cpp.
References PluginIdentifier::BUILTIN_PLUGIN_SONAME, m_instances, m_libraryHandles, PluginIdentifier::parseIdentifier(), and unloadLibrary().
Referenced by DSSIPluginFactory::enumeratePlugins(), enumeratePlugins(), and ~LADSPAPluginFactory().
RealTimePluginFactory * RealTimePluginFactory::instance | ( | QString | pluginType | ) | [static, inherited] |
Definition at line 43 of file RealTimePluginFactory.cpp.
References _dssiInstance, _ladspaInstance, and discoverPlugins().
Referenced by RealTimePluginFactory::enumerateAllPlugins(), RealTimePluginFactory::getAllPluginIdentifiers(), RealTimePluginFactory::instanceFor(), DSSIPluginFactory::instantiatePlugin(), instantiatePlugin(), DSSIPluginInstance::requestNonRTThread(), and DSSIPluginInstance::runGrouped().
RealTimePluginFactory * RealTimePluginFactory::instanceFor | ( | QString | identifier | ) | [static, inherited] |
Definition at line 65 of file RealTimePluginFactory.cpp.
References RealTimePluginFactory::instance(), and PluginIdentifier::parseIdentifier().
Referenced by ModelTransformerFactory::createTransformer(), ModelTransformerFactory::getConfigurationForTransform(), TransformFactory::getTransformChannelRange(), TransformFactory::instantiateDefaultPluginFor(), TransformFactory::populateRealTimePlugins(), and RealTimeEffectModelTransformer::RealTimeEffectModelTransformer().
std::vector< QString > RealTimePluginFactory::getAllPluginIdentifiers | ( | ) | [static, inherited] |
Definition at line 73 of file RealTimePluginFactory.cpp.
References RealTimePluginFactory::getPluginIdentifiers(), RealTimePluginFactory::instance(), and RestoreStartupLocale().
Referenced by TransformFactory::populateRealTimePlugins().
void RealTimePluginFactory::enumerateAllPlugins | ( | std::vector< QString > & | list | ) | [static, inherited] |
Definition at line 110 of file RealTimePluginFactory.cpp.
References RealTimePluginFactory::enumeratePlugins(), RealTimePluginFactory::instance(), and RestoreStartupLocale().
static void RealTimePluginFactory::setSampleRate | ( | int | sampleRate | ) | [inline, static, inherited] |
Definition at line 58 of file RealTimePluginFactory.h.
References RealTimePluginFactory::m_sampleRate.
friend class RealTimePluginFactory [friend] |
Reimplemented in DSSIPluginFactory.
Definition at line 64 of file LADSPAPluginFactory.h.
friend class RealTimePluginInstance [friend, inherited] |
Definition at line 104 of file RealTimePluginFactory.h.
std::vector<QString> LADSPAPluginFactory::m_identifiers [protected] |
Definition at line 82 of file LADSPAPluginFactory.h.
Referenced by DSSIPluginFactory::discoverPluginsFrom(), discoverPluginsFrom(), DSSIPluginFactory::enumeratePlugins(), enumeratePlugins(), and getPluginIdentifiers().
std::map<QString, RealTimePluginDescriptor *> LADSPAPluginFactory::m_rtDescriptors [protected] |
Definition at line 83 of file LADSPAPluginFactory.h.
Referenced by DSSIPluginFactory::discoverPluginsFrom(), discoverPluginsFrom(), and getPluginDescriptor().
std::map<QString, QString> LADSPAPluginFactory::m_taxonomy [protected] |
Definition at line 85 of file LADSPAPluginFactory.h.
Referenced by DSSIPluginFactory::discoverPluginsFrom(), discoverPluginsFrom(), DSSIPluginFactory::enumeratePlugins(), enumeratePlugins(), generateFallbackCategories(), and getPluginCategory().
std::map<unsigned long, QString> LADSPAPluginFactory::m_lrdfTaxonomy [protected] |
Definition at line 86 of file LADSPAPluginFactory.h.
Referenced by DSSIPluginFactory::discoverPluginsFrom(), discoverPluginsFrom(), and generateTaxonomy().
std::map<unsigned long, std::map<int, float> > LADSPAPluginFactory::m_portDefaults [protected] |
Definition at line 87 of file LADSPAPluginFactory.h.
Referenced by DSSIPluginFactory::discoverPluginsFrom(), discoverPluginsFrom(), and getPortDefault().
std::set<RealTimePluginInstance *> LADSPAPluginFactory::m_instances [protected] |
Definition at line 89 of file LADSPAPluginFactory.h.
Referenced by DSSIPluginFactory::instantiatePlugin(), instantiatePlugin(), releasePlugin(), unloadUnusedLibraries(), and ~LADSPAPluginFactory().
Definition at line 92 of file LADSPAPluginFactory.h.
Referenced by DSSIPluginFactory::getDSSIDescriptor(), getLADSPADescriptor(), loadLibrary(), unloadLibrary(), and unloadUnusedLibraries().
int RealTimePluginFactory::m_sampleRate = 48000 [static, protected, inherited] |
Definition at line 106 of file RealTimePluginFactory.h.
Referenced by getPortMaximum(), getPortMinimum(), and RealTimePluginFactory::setSampleRate().