svcore  1.9
DSSIPluginInstance Class Reference

#include <DSSIPluginInstance.h>

Inheritance diagram for DSSIPluginInstance:
Collaboration diagram for DSSIPluginInstance:

List of all members.

Classes

class  NonRTPluginThread
struct  ProgramControl
struct  ProgramDescriptor

Public Types

typedef float sample_t
typedef std::map< std::string,
std::string > 
ConfigurationPairMap

Public Member Functions

virtual ~DSSIPluginInstance ()
virtual bool isOK () const
int getClientId () const
virtual QString getPluginIdentifier () const
int getPosition () const
virtual std::string getIdentifier () const
virtual std::string getName () const
virtual std::string getDescription () const
virtual std::string getMaker () const
virtual int getPluginVersion () const
virtual std::string getCopyright () const
virtual void run (const Vamp::RealTime &, size_t count=0)
 Run for one block, starting at the given time.
virtual unsigned int getParameterCount () const
virtual void setParameterValue (unsigned int parameter, float value)
virtual float getParameterValue (unsigned int parameter) const
virtual float getParameterDefault (unsigned int parameter) const
virtual int getParameterDisplayHint (unsigned int parameter) const
virtual ParameterList getParameterDescriptors () const
virtual float getParameter (std::string) const
virtual void setParameter (std::string, float)
virtual std::string configure (std::string key, std::string value)
virtual void sendEvent (const Vamp::RealTime &eventTime, const void *event)
virtual void clearEvents ()
virtual size_t getBufferSize () const
virtual size_t getAudioInputCount () const
virtual size_t getAudioOutputCount () const
virtual sample_t ** getAudioInputBuffers ()
virtual sample_t ** getAudioOutputBuffers ()
virtual size_t getControlOutputCount () const
virtual float getControlOutputValue (size_t n) const
virtual ProgramList getPrograms () const
virtual std::string getCurrentProgram () const
virtual std::string getProgram (int bank, int program) const
virtual unsigned long getProgram (std::string name) const
virtual void selectProgram (std::string program)
virtual bool isBypassed () const
virtual void setBypassed (bool bypassed)
virtual size_t getLatency ()
virtual void silence ()
virtual void discardEvents ()
virtual void setIdealChannelCount (size_t channels)
virtual bool isInGroup () const
virtual void detachFromGroup ()
virtual std::string getType () const
void setFactory (RealTimePluginFactory *f)
virtual ConfigurationPairMap getConfigurePairs ()

Protected Types

typedef std::set
< DSSIPluginInstance * > 
PluginSet
typedef std::map< QString,
PluginSet
GroupMap

Protected Member Functions

 DSSIPluginInstance (RealTimePluginFactory *factory, int client, QString identifier, int position, unsigned long sampleRate, size_t blockSize, int idealChannelCount, const DSSI_Descriptor *descriptor)
void init ()
void instantiate (unsigned long sampleRate)
void cleanup ()
void activate ()
void deactivate ()
void connectPorts ()
bool handleController (snd_seq_event_t *ev)
void setPortValueFromController (unsigned int portNumber, int controlValue)
void selectProgramAux (std::string program, bool backupPortValues)
void checkProgramCache () const
void initialiseGroupMembership ()
void runGrouped (const Vamp::RealTime &)

Static Protected Member Functions

static int requestMidiSend (LADSPA_Handle instance, unsigned char ports, unsigned char channels)
static void midiSend (LADSPA_Handle instance, snd_seq_event_t *events, unsigned long eventCount)
static int requestNonRTThread (LADSPA_Handle instance, void(*runFunction)(LADSPA_Handle))

Protected Attributes

int m_client
int m_position
LADSPA_Handle m_instanceHandle
const DSSI_Descriptor * m_descriptor
std::vector< std::pair
< unsigned long, LADSPA_Data * > > 
m_controlPortsIn
std::vector< std::pair
< unsigned long, LADSPA_Data * > > 
m_controlPortsOut
std::vector< LADSPA_Data > m_backupControlPortsIn
std::map< int, int > m_controllerMap
std::vector< int > m_audioPortsIn
std::vector< int > m_audioPortsOut
ProgramControl m_pending
std::vector< ProgramDescriptorm_cachedPrograms
bool m_programCacheValid
RingBuffer< snd_seq_event_t > m_eventBuffer
size_t m_blockSize
sample_t ** m_inputBuffers
sample_t ** m_outputBuffers
bool m_ownBuffers
size_t m_idealChannelCount
size_t m_outputBufferCount
size_t m_sampleRate
float * m_latencyPort
bool m_run
bool m_bypassed
std::string m_program
bool m_grouped
Vamp::RealTime m_lastRunTime
Vamp::RealTime m_lastEventSendTime
bool m_haveLastEventSendTime
QMutex m_processLock
RealTimePluginFactorym_factory
QString m_identifier
ConfigurationPairMap m_configurationData

Static Protected Attributes

static GroupMap m_groupMap
static snd_seq_event_t ** m_groupLocalEventBuffers = 0
static size_t m_groupLocalEventBufferCount = 0
static Scavenger
< ScavengerArrayWrapper
< snd_seq_event_t * > > 
m_bufferScavenger
static std::map< LADSPA_Handle,
std::set< NonRTPluginThread * > > 
m_threads

Friends

class DSSIPluginFactory
class PluginFactory

Detailed Description

Definition at line 39 of file DSSIPluginInstance.h.


Member Typedef Documentation

typedef std::set<DSSIPluginInstance *> DSSIPluginInstance::PluginSet [protected]

Definition at line 195 of file DSSIPluginInstance.h.

typedef std::map<QString, PluginSet> DSSIPluginInstance::GroupMap [protected]

Definition at line 196 of file DSSIPluginInstance.h.

typedef float RealTimePluginInstance::sample_t [inherited]

Definition at line 80 of file RealTimePluginInstance.h.

typedef std::map<std::string, std::string> RealTimePluginInstance::ConfigurationPairMap [inherited]

Definition at line 141 of file RealTimePluginInstance.h.


Constructor & Destructor Documentation

DSSIPluginInstance::DSSIPluginInstance ( RealTimePluginFactory factory,
int  client,
QString  identifier,
int  position,
unsigned long  sampleRate,
size_t  blockSize,
int  idealChannelCount,
const DSSI_Descriptor *  descriptor 
) [protected]

Member Function Documentation

virtual bool DSSIPluginInstance::isOK ( ) const [inline, virtual]

Implements RealTimePluginInstance.

Definition at line 44 of file DSSIPluginInstance.h.

References m_instanceHandle.

Referenced by DSSIPluginInstance().

int DSSIPluginInstance::getClientId ( ) const [inline]

Definition at line 46 of file DSSIPluginInstance.h.

References m_client.

virtual QString DSSIPluginInstance::getPluginIdentifier ( ) const [inline, virtual]

Implements RealTimePluginInstance.

Definition at line 47 of file DSSIPluginInstance.h.

References RealTimePluginInstance::m_identifier.

int DSSIPluginInstance::getPosition ( ) const [inline]

Definition at line 48 of file DSSIPluginInstance.h.

References m_position.

std::string DSSIPluginInstance::getIdentifier ( ) const [virtual]

Definition at line 110 of file DSSIPluginInstance.cpp.

References m_descriptor.

std::string DSSIPluginInstance::getName ( ) const [virtual]

Definition at line 116 of file DSSIPluginInstance.cpp.

References m_descriptor.

std::string DSSIPluginInstance::getDescription ( ) const [virtual]

Definition at line 122 of file DSSIPluginInstance.cpp.

std::string DSSIPluginInstance::getMaker ( ) const [virtual]

Definition at line 128 of file DSSIPluginInstance.cpp.

References m_descriptor.

int DSSIPluginInstance::getPluginVersion ( ) const [virtual]

Definition at line 134 of file DSSIPluginInstance.cpp.

std::string DSSIPluginInstance::getCopyright ( ) const [virtual]

Definition at line 140 of file DSSIPluginInstance.cpp.

References m_descriptor.

void DSSIPluginInstance::run ( const Vamp::RealTime &  blockStartTime,
size_t  count = 0 
) [virtual]
unsigned int DSSIPluginInstance::getParameterCount ( ) const [virtual]

Implements RealTimePluginInstance.

Definition at line 745 of file DSSIPluginInstance.cpp.

References m_controlPortsIn.

float DSSIPluginInstance::getParameterValue ( unsigned int  parameter) const [virtual]

Implements RealTimePluginInstance.

Definition at line 821 of file DSSIPluginInstance.cpp.

References m_controlPortsIn, and SVDEBUG.

Referenced by getParameter().

float DSSIPluginInstance::getParameter ( std::string  id) const [virtual]

Definition at line 179 of file DSSIPluginInstance.cpp.

References getParameterValue(), m_controlPortsIn, m_descriptor, and SVDEBUG.

void DSSIPluginInstance::setParameter ( std::string  id,
float  value 
) [virtual]

Definition at line 201 of file DSSIPluginInstance.cpp.

References m_controlPortsIn, m_descriptor, setParameterValue(), and SVDEBUG.

void DSSIPluginInstance::sendEvent ( const Vamp::RealTime &  eventTime,
const void *  event 
) [virtual]
void DSSIPluginInstance::clearEvents ( ) [virtual]

Reimplemented from RealTimePluginInstance.

Definition at line 948 of file DSSIPluginInstance.cpp.

References m_eventBuffer, m_haveLastEventSendTime, and RingBuffer< T, N >::reset().

Referenced by sendEvent().

virtual size_t DSSIPluginInstance::getBufferSize ( ) const [inline, virtual]

Implements RealTimePluginInstance.

Definition at line 74 of file DSSIPluginInstance.h.

References m_blockSize.

virtual size_t DSSIPluginInstance::getAudioInputCount ( ) const [inline, virtual]

Implements RealTimePluginInstance.

Definition at line 75 of file DSSIPluginInstance.h.

References m_audioPortsIn.

Referenced by getLatency().

virtual size_t DSSIPluginInstance::getAudioOutputCount ( ) const [inline, virtual]

Implements RealTimePluginInstance.

Definition at line 76 of file DSSIPluginInstance.h.

References m_idealChannelCount.

virtual sample_t** DSSIPluginInstance::getAudioInputBuffers ( ) [inline, virtual]

Implements RealTimePluginInstance.

Definition at line 77 of file DSSIPluginInstance.h.

References m_inputBuffers.

virtual sample_t** DSSIPluginInstance::getAudioOutputBuffers ( ) [inline, virtual]

Implements RealTimePluginInstance.

Definition at line 78 of file DSSIPluginInstance.h.

References m_outputBuffers.

virtual size_t DSSIPluginInstance::getControlOutputCount ( ) const [inline, virtual]

Implements RealTimePluginInstance.

Definition at line 80 of file DSSIPluginInstance.h.

References m_controlPortsOut.

float DSSIPluginInstance::getControlOutputValue ( size_t  n) const [virtual]

Implements RealTimePluginInstance.

Definition at line 814 of file DSSIPluginInstance.cpp.

References m_controlPortsOut.

DSSIPluginInstance::ProgramList DSSIPluginInstance::getPrograms ( ) const [virtual]

Definition at line 534 of file DSSIPluginInstance.cpp.

References checkProgramCache(), m_cachedPrograms, m_descriptor, and SVDEBUG.

std::string DSSIPluginInstance::getCurrentProgram ( ) const [virtual]

Definition at line 599 of file DSSIPluginInstance.cpp.

References m_program.

std::string DSSIPluginInstance::getProgram ( int  bank,
int  program 
) const [virtual]

Reimplemented from RealTimePluginInstance.

Definition at line 555 of file DSSIPluginInstance.cpp.

References checkProgramCache(), m_cachedPrograms, m_descriptor, and SVDEBUG.

unsigned long DSSIPluginInstance::getProgram ( std::string  name) const [virtual]

Definition at line 574 of file DSSIPluginInstance.cpp.

References checkProgramCache(), m_cachedPrograms, m_descriptor, and SVDEBUG.

void DSSIPluginInstance::selectProgram ( std::string  program) [virtual]

Definition at line 605 of file DSSIPluginInstance.cpp.

References selectProgramAux().

virtual bool DSSIPluginInstance::isBypassed ( ) const [inline, virtual]

Implements RealTimePluginInstance.

Definition at line 89 of file DSSIPluginInstance.h.

References m_bypassed.

virtual void DSSIPluginInstance::setBypassed ( bool  bypassed) [inline, virtual]

Implements RealTimePluginInstance.

Definition at line 90 of file DSSIPluginInstance.h.

References m_bypassed.

void DSSIPluginInstance::silence ( ) [virtual]

Implements RealTimePluginInstance.

Definition at line 300 of file DSSIPluginInstance.cpp.

References activate(), deactivate(), and m_instanceHandle.

Referenced by setIdealChannelCount().

Reimplemented from RealTimePluginInstance.

Definition at line 309 of file DSSIPluginInstance.cpp.

References m_eventBuffer, and RingBuffer< T, N >::reset().

virtual bool DSSIPluginInstance::isInGroup ( ) const [inline, virtual]

Definition at line 98 of file DSSIPluginInstance.h.

References m_grouped.

virtual std::string DSSIPluginInstance::getType ( ) const [inline, virtual]

Reimplemented from RealTimePluginInstance.

Definition at line 101 of file DSSIPluginInstance.h.

void DSSIPluginInstance::instantiate ( unsigned long  sampleRate) [protected]

Definition at line 458 of file DSSIPluginInstance.cpp.

References m_controllerMap, m_descriptor, and m_instanceHandle.

Referenced by DSSIPluginInstance().

void DSSIPluginInstance::setPortValueFromController ( unsigned int  portNumber,
int  controlValue 
) [protected]

Definition at line 775 of file DSSIPluginInstance.cpp.

References m_controlPortsIn, m_descriptor, setParameterValue(), and SVDEBUG.

Referenced by handleController().

void DSSIPluginInstance::selectProgramAux ( std::string  program,
bool  backupPortValues 
) [protected]
int DSSIPluginInstance::requestMidiSend ( LADSPA_Handle  instance,
unsigned char  ports,
unsigned char  channels 
) [static, protected]

Definition at line 1258 of file DSSIPluginInstance.cpp.

References SVDEBUG.

Referenced by DSSIPluginFactory::DSSIPluginFactory().

void DSSIPluginInstance::midiSend ( LADSPA_Handle  instance,
snd_seq_event_t *  events,
unsigned long  eventCount 
) [static, protected]

Definition at line 1269 of file DSSIPluginInstance.cpp.

References SVDEBUG.

Referenced by DSSIPluginFactory::DSSIPluginFactory().

int DSSIPluginInstance::requestNonRTThread ( LADSPA_Handle  instance,
void(*)(LADSPA_Handle)  runFunction 
) [static, protected]
void RealTimePluginInstance::setFactory ( RealTimePluginFactory f) [inline, inherited]

Definition at line 137 of file RealTimePluginInstance.h.

References RealTimePluginInstance::m_factory.


Friends And Related Function Documentation

friend class DSSIPluginFactory [friend]

Definition at line 105 of file DSSIPluginInstance.h.

friend class PluginFactory [friend, inherited]

Definition at line 155 of file RealTimePluginInstance.h.


Member Data Documentation

Definition at line 143 of file DSSIPluginInstance.h.

Referenced by getClientId().

Definition at line 144 of file DSSIPluginInstance.h.

Referenced by getPosition().

std::vector<std::pair<unsigned long, LADSPA_Data*> > DSSIPluginInstance::m_controlPortsOut [protected]
std::vector<LADSPA_Data> DSSIPluginInstance::m_backupControlPortsIn [protected]
std::map<int, int> DSSIPluginInstance::m_controllerMap [protected]

Definition at line 153 of file DSSIPluginInstance.h.

Referenced by handleController(), and instantiate().

std::vector<int> DSSIPluginInstance::m_audioPortsOut [protected]

Definition at line 156 of file DSSIPluginInstance.h.

Referenced by connectPorts(), init(), run(), and ~DSSIPluginInstance().

std::vector<ProgramDescriptor> DSSIPluginInstance::m_cachedPrograms [mutable, protected]

Definition at line 170 of file DSSIPluginInstance.h.

Referenced by checkProgramCache(), getProgram(), getPrograms(), and selectProgramAux().

bool DSSIPluginInstance::m_programCacheValid [mutable, protected]

Definition at line 171 of file DSSIPluginInstance.h.

Referenced by checkProgramCache(), and configure().

RingBuffer<snd_seq_event_t> DSSIPluginInstance::m_eventBuffer [protected]

Definition at line 173 of file DSSIPluginInstance.h.

Referenced by clearEvents(), discardEvents(), run(), runGrouped(), and sendEvent().

Definition at line 178 of file DSSIPluginInstance.h.

Referenced by DSSIPluginInstance(), and ~DSSIPluginInstance().

Definition at line 181 of file DSSIPluginInstance.h.

Referenced by run(), and runGrouped().

Definition at line 182 of file DSSIPluginInstance.h.

Referenced by getLatency(), and init().

bool DSSIPluginInstance::m_run [protected]

Definition at line 183 of file DSSIPluginInstance.h.

Referenced by getLatency(), and run().

Definition at line 185 of file DSSIPluginInstance.h.

Referenced by isBypassed(), and setBypassed().

std::string DSSIPluginInstance::m_program [protected]

Definition at line 186 of file DSSIPluginInstance.h.

Referenced by activate(), getCurrentProgram(), and selectProgramAux().

Definition at line 187 of file DSSIPluginInstance.h.

Referenced by detachFromGroup(), initialiseGroupMembership(), isInGroup(), and run().

Vamp::RealTime DSSIPluginInstance::m_lastRunTime [protected]

Definition at line 188 of file DSSIPluginInstance.h.

Referenced by run(), and runGrouped().

Vamp::RealTime DSSIPluginInstance::m_lastEventSendTime [protected]

Definition at line 190 of file DSSIPluginInstance.h.

Referenced by sendEvent().

Definition at line 191 of file DSSIPluginInstance.h.

Referenced by clearEvents(), run(), and sendEvent().

Definition at line 193 of file DSSIPluginInstance.h.

Referenced by run(), and selectProgramAux().

snd_seq_event_t ** DSSIPluginInstance::m_groupLocalEventBuffers = 0 [static, protected]

Definition at line 198 of file DSSIPluginInstance.h.

Referenced by initialiseGroupMembership(), and runGrouped().

size_t DSSIPluginInstance::m_groupLocalEventBufferCount = 0 [static, protected]

Definition at line 199 of file DSSIPluginInstance.h.

Referenced by initialiseGroupMembership(), and runGrouped().

Scavenger< ScavengerArrayWrapper< snd_seq_event_t * > > DSSIPluginInstance::m_bufferScavenger [static, protected]

Definition at line 201 of file DSSIPluginInstance.h.

Referenced by deactivate(), and initialiseGroupMembership().

std::map< LADSPA_Handle, std::set< DSSIPluginInstance::NonRTPluginThread * > > DSSIPluginInstance::m_threads [static, protected]

Definition at line 220 of file DSSIPluginInstance.h.

Referenced by requestNonRTThread(), and ~DSSIPluginInstance().


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