LADSPAPluginFactory Class Reference

#include <LADSPAPluginFactory.h>

Inherits RealTimePluginFactory.

Inherited by DSSIPluginFactory.

Inheritance diagram for LADSPAPluginFactory:

Inheritance graph
[legend]
Collaboration diagram for LADSPAPluginFactory:

Collaboration graph
[legend]
List of all members.

Detailed Description

Definition at line 34 of file 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 RealTimePluginDescriptorgetPluginDescriptor (QString identifier) const
 Get some basic information about a plugin (rapidly).
virtual RealTimePluginInstanceinstantiatePlugin (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 RealTimePluginFactoryinstance (QString pluginType)
static RealTimePluginFactoryinstanceFor (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 discoverPlugins (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

Friends

class RealTimePluginFactory
class RealTimePluginInstance


Member Typedef Documentation

typedef std::map<QString, void *> LADSPAPluginFactory::LibraryHandleMap [protected]

Definition at line 91 of file LADSPAPluginFactory.h.


Constructor & Destructor Documentation

LADSPAPluginFactory::~LADSPAPluginFactory (  )  [virtual]

Definition at line 50 of file LADSPAPluginFactory.cpp.

References m_instances, and unloadUnusedLibraries().

LADSPAPluginFactory::LADSPAPluginFactory (  )  [protected]

Definition at line 43 of file LADSPAPluginFactory.cpp.


Member Function Documentation

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 623 of file LADSPAPluginFactory.cpp.

References 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 66 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 72 of file LADSPAPluginFactory.cpp.

References PortType::Audio, PortType::Control, getLADSPADescriptor(), getPortDefault(), getPortDisplayHint(), getPortMaximum(), getPortMinimum(), PortType::Input, m_identifiers, m_taxonomy, and PortType::Output.

const RealTimePluginDescriptor * LADSPAPluginFactory::getPluginDescriptor ( QString  identifier  )  const [virtual]

Get some basic information about a plugin (rapidly).

Implements RealTimePluginFactory.

Definition at line 132 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 328 of file LADSPAPluginFactory.cpp.

References getLADSPADescriptor(), RealTimePluginFactory::instance(), and m_instances.

QString LADSPAPluginFactory::getPluginCategory ( QString  identifier  )  [virtual]

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

Implements RealTimePluginFactory.

Definition at line 875 of file LADSPAPluginFactory.cpp.

References m_taxonomy.

float LADSPAPluginFactory::getPortMinimum ( const LADSPA_Descriptor *  ,
int  port 
)

Definition at line 145 of file LADSPAPluginFactory.cpp.

References RealTimePluginFactory::m_sampleRate.

Referenced by enumeratePlugins(), DSSIPluginFactory::enumeratePlugins(), LADSPAPluginInstance::getParameterDescriptors(), DSSIPluginInstance::getParameterDescriptors(), getPortDefault(), getPortQuantization(), LADSPAPluginInstance::setParameterValue(), and DSSIPluginInstance::setParameterValue().

float LADSPAPluginFactory::getPortMaximum ( const LADSPA_Descriptor *  ,
int  port 
)

Definition at line 172 of file LADSPAPluginFactory.cpp.

References RealTimePluginFactory::m_sampleRate.

Referenced by enumeratePlugins(), DSSIPluginFactory::enumeratePlugins(), LADSPAPluginInstance::getParameterDescriptors(), DSSIPluginInstance::getParameterDescriptors(), getPortDefault(), getPortQuantization(), LADSPAPluginInstance::setParameterValue(), and DSSIPluginInstance::setParameterValue().

float LADSPAPluginFactory::getPortDefault ( const LADSPA_Descriptor *  ,
int  port 
)

Definition at line 195 of file LADSPAPluginFactory.cpp.

References Preferences::getInstance(), getPortMaximum(), getPortMinimum(), Preferences::getTuningFrequency(), and m_portDefaults.

Referenced by LADSPAPluginInstance::connectPorts(), DSSIPluginInstance::connectPorts(), enumeratePlugins(), DSSIPluginFactory::enumeratePlugins(), LADSPAPluginInstance::getParameterDefault(), DSSIPluginInstance::getParameterDefault(), LADSPAPluginInstance::getParameterDescriptors(), and DSSIPluginInstance::getParameterDescriptors().

float LADSPAPluginFactory::getPortQuantization ( const LADSPA_Descriptor *  ,
int  port 
)

Definition at line 299 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 *  ,
int  port 
)

Definition at line 313 of file LADSPAPluginFactory.cpp.

References PortHint::Integer, PortHint::Logarithmic, PortHint::NoHint, and PortHint::Toggled.

Referenced by enumeratePlugins(), DSSIPluginFactory::enumeratePlugins(), LADSPAPluginInstance::getParameterDisplayHint(), DSSIPluginInstance::getParameterDisplayHint(), and getPortQuantization().

std::vector< QString > LADSPAPluginFactory::getPluginPath (  )  [protected, virtual]

Reimplemented in DSSIPluginFactory.

Definition at line 553 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 601 of file LADSPAPluginFactory.cpp.

References getPluginPath().

Referenced by discoverPlugins().

void LADSPAPluginFactory::discoverPlugins ( QString  soName  )  [protected, virtual]

Reimplemented in DSSIPluginFactory.

Definition at line 672 of file LADSPAPluginFactory.cpp.

References RealTimePluginDescriptor::audioInputPortCount, RealTimePluginDescriptor::audioOutputPortCount, RealTimePluginDescriptor::category, RealTimePluginDescriptor::controlOutputPortCount, RealTimePluginDescriptor::copyright, PluginIdentifier::createIdentifier(), DLERROR, DLOPEN, DLSYM, RealTimePluginDescriptor::isSynth, RealTimePluginDescriptor::label, m_lrdfTaxonomy, m_portDefaults, m_taxonomy, RealTimePluginDescriptor::maker, RealTimePluginDescriptor::name, and RealTimePluginDescriptor::parameterCount.

void LADSPAPluginFactory::generateTaxonomy ( QString  uri,
QString  base 
) [protected, virtual]

Definition at line 849 of file LADSPAPluginFactory.cpp.

References m_lrdfTaxonomy.

Referenced by discoverPlugins().

void LADSPAPluginFactory::generateFallbackCategories (  )  [protected, virtual]

Definition at line 801 of file LADSPAPluginFactory.cpp.

References PluginIdentifier::canonicalise(), getPluginPath(), and m_taxonomy.

Referenced by discoverPlugins().

void LADSPAPluginFactory::releasePlugin ( RealTimePluginInstance ,
QString   
) [protected, virtual]

Implements RealTimePluginFactory.

Definition at line 358 of file LADSPAPluginFactory.cpp.

References PluginIdentifier::BUILTIN_PLUGIN_SONAME, RealTimePluginFactory::instance(), m_instances, PluginIdentifier::parseIdentifier(), and unloadLibrary().

const LADSPA_Descriptor * LADSPAPluginFactory::getLADSPADescriptor ( QString  identifier  )  [protected, virtual]

Reimplemented in DSSIPluginFactory.

Definition at line 403 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 440 of file LADSPAPluginFactory.cpp.

References DLERROR, DLOPEN, getPluginPath(), m_libraryHandles, and PLUGIN_GLOB.

Referenced by DSSIPluginFactory::getDSSIDescriptor(), and getLADSPADescriptor().

void LADSPAPluginFactory::unloadLibrary ( QString  soName  )  [protected]

Definition at line 501 of file LADSPAPluginFactory.cpp.

References DLCLOSE, and m_libraryHandles.

Referenced by releasePlugin(), and unloadUnusedLibraries().

void LADSPAPluginFactory::unloadUnusedLibraries (  )  [protected]

Definition at line 512 of file LADSPAPluginFactory.cpp.

References PluginIdentifier::BUILTIN_PLUGIN_SONAME, m_instances, m_libraryHandles, PluginIdentifier::parseIdentifier(), and unloadLibrary().

Referenced by ~LADSPAPluginFactory().

RealTimePluginFactory * RealTimePluginFactory::instance ( QString  pluginType  )  [static, inherited]

Definition at line 42 of file RealTimePluginFactory.cpp.

References _dssiInstance, _ladspaInstance, and discoverPlugins().

Referenced by RealTimePluginFactory::enumerateAllPlugins(), RealTimePluginFactory::getAllPluginIdentifiers(), RealTimePluginFactory::instanceFor(), instantiatePlugin(), DSSIPluginFactory::instantiatePlugin(), releasePlugin(), and DSSIPluginInstance::runGrouped().

RealTimePluginFactory * RealTimePluginFactory::instanceFor ( QString  identifier  )  [static, inherited]

Definition at line 66 of file RealTimePluginFactory.cpp.

References RealTimePluginFactory::instance(), and PluginIdentifier::parseIdentifier().

Referenced by ModelTransformerFactory::createTransformer(), PropertyBox::editPlugin(), ModelTransformerFactory::getConfigurationForTransform(), TransformFactory::getTransformChannelRange(), TransformFactory::instantiateDefaultPluginFor(), AudioGenerator::loadPlugin(), TransformFactory::populateRealTimePlugins(), and RealTimeEffectModelTransformer::RealTimeEffectModelTransformer().

std::vector< QString > RealTimePluginFactory::getAllPluginIdentifiers (  )  [static, inherited]

Definition at line 74 of file RealTimePluginFactory.cpp.

References RealTimePluginFactory::getPluginIdentifiers(), RealTimePluginFactory::instance(), and RestoreStartupLocale().

Referenced by TransformFactory::populateRealTimePlugins().

void RealTimePluginFactory::enumerateAllPlugins ( std::vector< QString > &   )  [static, inherited]

Definition at line 109 of file RealTimePluginFactory.cpp.

References RealTimePluginFactory::enumeratePlugins(), and RealTimePluginFactory::instance().

static void RealTimePluginFactory::setSampleRate ( int  sampleRate  )  [inline, static, inherited]

Definition at line 56 of file RealTimePluginFactory.h.

References RealTimePluginFactory::m_sampleRate.


Friends And Related Function Documentation

friend class RealTimePluginFactory [friend]

Reimplemented in DSSIPluginFactory.

Definition at line 64 of file LADSPAPluginFactory.h.

friend class RealTimePluginInstance [friend, inherited]

Definition at line 102 of file RealTimePluginFactory.h.


Member Data Documentation

std::vector<QString> LADSPAPluginFactory::m_identifiers [protected]

Definition at line 82 of file LADSPAPluginFactory.h.

Referenced by enumeratePlugins(), DSSIPluginFactory::enumeratePlugins(), and getPluginIdentifiers().

std::map<QString, RealTimePluginDescriptor *> LADSPAPluginFactory::m_rtDescriptors [protected]

Definition at line 83 of file LADSPAPluginFactory.h.

Referenced by getPluginDescriptor().

std::map<QString, QString> LADSPAPluginFactory::m_taxonomy [protected]

Definition at line 85 of file LADSPAPluginFactory.h.

Referenced by discoverPlugins(), DSSIPluginFactory::discoverPlugins(), enumeratePlugins(), DSSIPluginFactory::enumeratePlugins(), generateFallbackCategories(), and getPluginCategory().

std::map<unsigned long, QString> LADSPAPluginFactory::m_lrdfTaxonomy [protected]

Definition at line 86 of file LADSPAPluginFactory.h.

Referenced by discoverPlugins(), DSSIPluginFactory::discoverPlugins(), and generateTaxonomy().

std::map<unsigned long, std::map<int, float> > LADSPAPluginFactory::m_portDefaults [protected]

Definition at line 87 of file LADSPAPluginFactory.h.

Referenced by discoverPlugins(), DSSIPluginFactory::discoverPlugins(), and getPortDefault().

std::set<RealTimePluginInstance *> LADSPAPluginFactory::m_instances [protected]

Definition at line 89 of file LADSPAPluginFactory.h.

Referenced by instantiatePlugin(), DSSIPluginFactory::instantiatePlugin(), releasePlugin(), unloadUnusedLibraries(), and ~LADSPAPluginFactory().

LibraryHandleMap LADSPAPluginFactory::m_libraryHandles [protected]

Definition at line 92 of file LADSPAPluginFactory.h.

Referenced by DSSIPluginFactory::getDSSIDescriptor(), getLADSPADescriptor(), loadLibrary(), unloadLibrary(), and unloadUnusedLibraries().

int RealTimePluginFactory::m_sampleRate [static, protected, inherited]

Definition at line 104 of file RealTimePluginFactory.h.

Referenced by getPortMaximum(), getPortMinimum(), and RealTimePluginFactory::setSampleRate().


The documentation for this class was generated from the following files:
Generated on Wed Feb 20 15:45:33 2008 for SonicVisualiser by  doxygen 1.5.1