#include <DSSIPluginInstance.h>

Inheritance diagram for DSSIPluginInstance:
Inheritance graph
Collaboration diagram for DSSIPluginInstance:
Collaboration graph

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

Protected Types

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

Protected Member Functions

 DSSIPluginInstance (RealTimePluginFactory *factory, int client, QString identifier, int position, sv_samplerate_t sampleRate, int blockSize, int idealChannelCount, const DSSI_Descriptor *descriptor)
 
void init ()
 
void instantiate (sv_samplerate_t sampleRate)
 
void cleanup ()
 
void activate ()
 
void deactivate ()
 
void connectPorts ()
 
bool handleController (snd_seq_event_t *ev)
 
void setPortValueFromController (int portNumber, int controlValue)
 
void selectProgramAux (std::string program, bool backupPortValues)
 
void checkProgramCache () const
 
void initialiseGroupMembership ()
 
void runGrouped (const 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< int, LADSPA_Data * > > m_controlPortsIn
 
std::vector< std::pair< int, 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
 
int m_blockSize
 
sample_t ** m_inputBuffers
 
sample_t ** m_outputBuffers
 
bool m_ownBuffers
 
int m_idealChannelCount
 
int m_outputBufferCount
 
sv_samplerate_t m_sampleRate
 
float * m_latencyPort
 
bool m_run
 
bool m_bypassed
 
std::string m_program
 
bool m_grouped
 
RealTime m_lastRunTime
 
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 = nullptr
 
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
 

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 139 of file RealTimePluginInstance.h.

Constructor & Destructor Documentation

DSSIPluginInstance::DSSIPluginInstance ( RealTimePluginFactory factory,
int  client,
QString  identifier,
int  position,
sv_samplerate_t  sampleRate,
int  blockSize,
int  idealChannelCount,
const DSSI_Descriptor *  descriptor 
)
protected

Member Function Documentation

bool DSSIPluginInstance::isOK ( ) const
inlineoverridevirtual

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.

QString DSSIPluginInstance::getPluginIdentifier ( ) const
inlineoverridevirtual

Implements RealTimePluginInstance.

Definition at line 47 of file DSSIPluginInstance.h.

References RealTimePluginInstance::m_identifier.

std::string DSSIPluginInstance::getIdentifier ( ) const
override

Definition at line 110 of file DSSIPluginInstance.cpp.

References m_descriptor.

Referenced by getPosition().

std::string DSSIPluginInstance::getName ( ) const
override

Definition at line 116 of file DSSIPluginInstance.cpp.

References m_descriptor.

Referenced by getPosition().

std::string DSSIPluginInstance::getDescription ( ) const
override

Definition at line 122 of file DSSIPluginInstance.cpp.

Referenced by getPosition().

std::string DSSIPluginInstance::getMaker ( ) const
override

Definition at line 128 of file DSSIPluginInstance.cpp.

References m_descriptor.

Referenced by getPosition().

int DSSIPluginInstance::getPluginVersion ( ) const
override

Definition at line 134 of file DSSIPluginInstance.cpp.

Referenced by getPosition().

std::string DSSIPluginInstance::getCopyright ( ) const
override

Definition at line 140 of file DSSIPluginInstance.cpp.

References m_descriptor.

Referenced by getPosition().

void DSSIPluginInstance::run ( const RealTime blockStartTime,
int  count = 0 
)
overridevirtual
int DSSIPluginInstance::getParameterCount ( ) const
overridevirtual

Implements RealTimePluginInstance.

Definition at line 752 of file DSSIPluginInstance.cpp.

References m_controlPortsIn.

Referenced by getPosition().

void DSSIPluginInstance::setParameterValue ( int  parameter,
float  value 
)
overridevirtual
float DSSIPluginInstance::getParameterValue ( int  parameter) const
overridevirtual

Implements RealTimePluginInstance.

Definition at line 828 of file DSSIPluginInstance.cpp.

References in_range_for(), m_controlPortsIn, and SVDEBUG.

Referenced by getParameter(), and getPosition().

float DSSIPluginInstance::getParameterDefault ( int  parameter) const
overridevirtual
int DSSIPluginInstance::getParameterDisplayHint ( int  parameter) const
overridevirtual
float DSSIPluginInstance::getParameter ( std::string  id) const
override

Definition at line 179 of file DSSIPluginInstance.cpp.

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

Referenced by getPosition().

void DSSIPluginInstance::setParameter ( std::string  id,
float  value 
)
override

Definition at line 201 of file DSSIPluginInstance.cpp.

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

Referenced by getPosition().

std::string DSSIPluginInstance::configure ( std::string  key,
std::string  value 
)
overridevirtual
void DSSIPluginInstance::sendEvent ( const RealTime eventTime,
const void *  event 
)
overridevirtual
void DSSIPluginInstance::clearEvents ( )
overridevirtual

Reimplemented from RealTimePluginInstance.

Definition at line 955 of file DSSIPluginInstance.cpp.

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

Referenced by getPosition(), and sendEvent().

int DSSIPluginInstance::getBufferSize ( ) const
inlineoverridevirtual

Implements RealTimePluginInstance.

Definition at line 74 of file DSSIPluginInstance.h.

References m_blockSize.

int DSSIPluginInstance::getAudioInputCount ( ) const
inlineoverridevirtual

Implements RealTimePluginInstance.

Definition at line 75 of file DSSIPluginInstance.h.

References m_audioPortsIn.

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

int DSSIPluginInstance::getAudioOutputCount ( ) const
inlineoverridevirtual

Implements RealTimePluginInstance.

Definition at line 76 of file DSSIPluginInstance.h.

References m_idealChannelCount.

sample_t** DSSIPluginInstance::getAudioInputBuffers ( )
inlineoverridevirtual

Implements RealTimePluginInstance.

Definition at line 77 of file DSSIPluginInstance.h.

References m_inputBuffers.

sample_t** DSSIPluginInstance::getAudioOutputBuffers ( )
inlineoverridevirtual

Implements RealTimePluginInstance.

Definition at line 78 of file DSSIPluginInstance.h.

References m_outputBuffers.

int DSSIPluginInstance::getControlOutputCount ( ) const
inlineoverridevirtual
float DSSIPluginInstance::getControlOutputValue ( int  n) const
overridevirtual

Implements RealTimePluginInstance.

Definition at line 821 of file DSSIPluginInstance.cpp.

References in_range_for(), and m_controlPortsOut.

Referenced by getControlOutputCount().

DSSIPluginInstance::ProgramList DSSIPluginInstance::getPrograms ( ) const
override

Definition at line 541 of file DSSIPluginInstance.cpp.

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

Referenced by getControlOutputCount().

std::string DSSIPluginInstance::getCurrentProgram ( ) const
override

Definition at line 606 of file DSSIPluginInstance.cpp.

References m_program.

Referenced by getControlOutputCount().

std::string DSSIPluginInstance::getProgram ( int  bank,
int  program 
) const
overridevirtual

Reimplemented from RealTimePluginInstance.

Definition at line 562 of file DSSIPluginInstance.cpp.

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

Referenced by getControlOutputCount().

int DSSIPluginInstance::getProgram ( std::string  name) const
virtual

Definition at line 581 of file DSSIPluginInstance.cpp.

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

void DSSIPluginInstance::selectProgram ( std::string  program)
override

Definition at line 612 of file DSSIPluginInstance.cpp.

References selectProgramAux().

Referenced by getControlOutputCount().

bool DSSIPluginInstance::isBypassed ( ) const
inlineoverridevirtual

Implements RealTimePluginInstance.

Definition at line 89 of file DSSIPluginInstance.h.

References m_bypassed.

void DSSIPluginInstance::setBypassed ( bool  bypassed)
inlineoverridevirtual
sv_frame_t DSSIPluginInstance::getLatency ( )
overridevirtual
void DSSIPluginInstance::silence ( )
overridevirtual

Implements RealTimePluginInstance.

Definition at line 301 of file DSSIPluginInstance.cpp.

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

Referenced by setBypassed(), and setIdealChannelCount().

void DSSIPluginInstance::discardEvents ( )
overridevirtual

Reimplemented from RealTimePluginInstance.

Definition at line 310 of file DSSIPluginInstance.cpp.

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

Referenced by setBypassed().

void DSSIPluginInstance::setIdealChannelCount ( int  channels)
overridevirtual
virtual bool DSSIPluginInstance::isInGroup ( ) const
inlinevirtual

Definition at line 98 of file DSSIPluginInstance.h.

References detachFromGroup(), and m_grouped.

void DSSIPluginInstance::detachFromGroup ( )
virtual
std::string DSSIPluginInstance::getType ( ) const
inlineoverride

Definition at line 101 of file DSSIPluginInstance.h.

void DSSIPluginInstance::instantiate ( sv_samplerate_t  sampleRate)
protected

Definition at line 459 of file DSSIPluginInstance.cpp.

References m_controllerMap, m_descriptor, and m_instanceHandle.

Referenced by DSSIPluginInstance().

void DSSIPluginInstance::cleanup ( )
protected
void DSSIPluginInstance::activate ( )
protected
bool DSSIPluginInstance::handleController ( snd_seq_event_t *  ev)
protected
void DSSIPluginInstance::setPortValueFromController ( int  portNumber,
int  controlValue 
)
protected
void DSSIPluginInstance::selectProgramAux ( std::string  program,
bool  backupPortValues 
)
protected
void DSSIPluginInstance::initialiseGroupMembership ( )
protected
int DSSIPluginInstance::requestMidiSend ( LADSPA_Handle  instance,
unsigned char  ports,
unsigned char  channels 
)
staticprotected

Definition at line 1267 of file DSSIPluginInstance.cpp.

References SVDEBUG.

Referenced by DSSIPluginFactory::DSSIPluginFactory().

void DSSIPluginInstance::midiSend ( LADSPA_Handle  instance,
snd_seq_event_t *  events,
unsigned long  eventCount 
)
staticprotected

Definition at line 1278 of file DSSIPluginInstance.cpp.

References SVDEBUG.

Referenced by DSSIPluginFactory::DSSIPluginFactory().

int DSSIPluginInstance::requestNonRTThread ( LADSPA_Handle  instance,
void(*)(LADSPA_Handle)  runFunction 
)
staticprotected
virtual ConfigurationPairMap RealTimePluginInstance::getConfigurePairs ( )
inlinevirtualinherited

Friends And Related Function Documentation

friend class DSSIPluginFactory
friend

Definition at line 105 of file DSSIPluginInstance.h.

Member Data Documentation

int DSSIPluginInstance::m_client
protected

Definition at line 143 of file DSSIPluginInstance.h.

Referenced by getClientId().

int DSSIPluginInstance::m_position
protected

Definition at line 144 of file DSSIPluginInstance.h.

Referenced by getPosition().

LADSPA_Handle DSSIPluginInstance::m_instanceHandle
protected
std::vector<std::pair<int, 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_audioPortsIn
protected
std::vector<int> DSSIPluginInstance::m_audioPortsOut
protected

Definition at line 156 of file DSSIPluginInstance.h.

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

ProgramControl DSSIPluginInstance::m_pending
protected

Definition at line 163 of file DSSIPluginInstance.h.

Referenced by DSSIPluginInstance(), handleController(), run(), and runGrouped().

std::vector<ProgramDescriptor> DSSIPluginInstance::m_cachedPrograms
mutableprotected

Definition at line 170 of file DSSIPluginInstance.h.

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

bool DSSIPluginInstance::m_programCacheValid
mutableprotected

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().

int DSSIPluginInstance::m_blockSize
protected
sample_t** DSSIPluginInstance::m_inputBuffers
protected
sample_t** DSSIPluginInstance::m_outputBuffers
protected
bool DSSIPluginInstance::m_ownBuffers
protected

Definition at line 178 of file DSSIPluginInstance.h.

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

int DSSIPluginInstance::m_idealChannelCount
protected

Definition at line 179 of file DSSIPluginInstance.h.

Referenced by getAudioOutputCount(), init(), run(), and setIdealChannelCount().

int DSSIPluginInstance::m_outputBufferCount
protected
sv_samplerate_t DSSIPluginInstance::m_sampleRate
protected

Definition at line 181 of file DSSIPluginInstance.h.

Referenced by run(), and runGrouped().

float* DSSIPluginInstance::m_latencyPort
protected

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().

bool DSSIPluginInstance::m_bypassed
protected

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().

bool DSSIPluginInstance::m_grouped
protected

Definition at line 187 of file DSSIPluginInstance.h.

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

RealTime DSSIPluginInstance::m_lastRunTime
protected

Definition at line 188 of file DSSIPluginInstance.h.

Referenced by run(), and runGrouped().

RealTime DSSIPluginInstance::m_lastEventSendTime
protected

Definition at line 190 of file DSSIPluginInstance.h.

Referenced by sendEvent().

bool DSSIPluginInstance::m_haveLastEventSendTime
protected

Definition at line 191 of file DSSIPluginInstance.h.

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

QMutex DSSIPluginInstance::m_processLock
protected

Definition at line 193 of file DSSIPluginInstance.h.

Referenced by run(), and selectProgramAux().

DSSIPluginInstance::GroupMap DSSIPluginInstance::m_groupMap
staticprotected

Definition at line 197 of file DSSIPluginInstance.h.

Referenced by detachFromGroup(), initialiseGroupMembership(), and runGrouped().

snd_seq_event_t ** DSSIPluginInstance::m_groupLocalEventBuffers = nullptr
staticprotected

Definition at line 198 of file DSSIPluginInstance.h.

Referenced by initialiseGroupMembership(), and runGrouped().

size_t DSSIPluginInstance::m_groupLocalEventBufferCount = 0
staticprotected

Definition at line 199 of file DSSIPluginInstance.h.

Referenced by initialiseGroupMembership(), and runGrouped().

Scavenger< ScavengerArrayWrapper< snd_seq_event_t * > > DSSIPluginInstance::m_bufferScavenger
staticprotected

Definition at line 201 of file DSSIPluginInstance.h.

Referenced by deactivate(), and initialiseGroupMembership().

std::map< LADSPA_Handle, std::set< DSSIPluginInstance::NonRTPluginThread * > > DSSIPluginInstance::m_threads
staticprotected

Definition at line 220 of file DSSIPluginInstance.h.

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

QString RealTimePluginInstance::m_identifier
protectedinherited
ConfigurationPairMap RealTimePluginInstance::m_configurationData
protectedinherited

Definition at line 151 of file RealTimePluginInstance.h.

Referenced by configure().


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