ardour
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
ARDOUR::LV2Plugin Class Reference

#include <lv2_plugin.h>

Inheritance diagram for ARDOUR::LV2Plugin:
ARDOUR::Plugin ARDOUR::Workee PBD::StatefulDestructible ARDOUR::Latent PBD::Stateful PBD::Destructible

Classes

struct  Impl
 
struct  LV2_DataAccess
 
struct  UIMessage
 Message send to/from UI via ports. More...
 

Public Types

typedef void UIMessageSink (void *controller, uint32_t index, uint32_t size, uint32_t format, const void *buffer)
 
- Public Types inherited from ARDOUR::Plugin
typedef std::map< uint32_t,
ParameterDescriptor
PropertyDescriptors
 

Public Member Functions

 LV2Plugin (ARDOUR::AudioEngine &engine, ARDOUR::Session &session, const void *c_plugin, framecnt_t sample_rate)
 
 LV2Plugin (const LV2Plugin &)
 
 ~LV2Plugin ()
 
std::string unique_id () const
 
const char * uri () const
 
const char * label () const
 
const char * name () const
 
const char * maker () const
 
uint32_t num_ports () const
 
uint32_t parameter_count () const
 
float default_value (uint32_t port)
 
framecnt_t signal_latency () const
 
void set_parameter (uint32_t port, float val)
 
float get_parameter (uint32_t port) const
 
std::string get_docs () const
 
std::string get_parameter_docs (uint32_t which) const
 
int get_parameter_descriptor (uint32_t which, ParameterDescriptor &) const
 
uint32_t nth_parameter (uint32_t port, bool &ok) const
 
const void * extension_data (const char *uri) const
 
const void * c_plugin ()
 
const void * c_ui ()
 
const void * c_ui_type ()
 
bool is_external_ui () const
 
bool is_external_kx () const
 
bool ui_is_resizable () const
 
const char * port_symbol (uint32_t port) const
 
uint32_t port_index (const char *symbol) const
 
const LV2_Feature *const * features ()
 
std::set< Evoral::Parameterautomatable () const
 
void activate ()
 
void deactivate ()
 
void cleanup ()
 
int set_block_size (pframes_t)
 
int connect_and_run (BufferSet &bufs, ChanMapping in, ChanMapping out, pframes_t nframes, framecnt_t offset)
 
std::string describe_parameter (Evoral::Parameter)
 
std::string state_node_name () const
 
void print_parameter (uint32_t param, char *buf, uint32_t len) const
 
bool parameter_is_audio (uint32_t) const
 
bool parameter_is_control (uint32_t) const
 
bool parameter_is_event (uint32_t) const
 
bool parameter_is_input (uint32_t) const
 
bool parameter_is_output (uint32_t) const
 
bool parameter_is_toggled (uint32_t) const
 
boost::shared_ptr< ScalePointsget_scale_points (uint32_t port_index) const
 
void set_insert_id (PBD::ID id)
 
int set_state (const XMLNode &node, int version)
 
bool save_preset (std::string uri)
 
void remove_preset (std::string uri)
 
bool load_preset (PresetRecord)
 
std::string current_preset () const
 
bool has_editor () const
 
bool has_message_output () const
 
bool write_from_ui (uint32_t index, uint32_t protocol, uint32_t size, const uint8_t *body)
 
void enable_ui_emission ()
 
void emit_to_ui (void *controller, UIMessageSink sink)
 
Workerworker ()
 
URIMapuri_map ()
 
const URIMapuri_map () const
 
int work (uint32_t size, const void *data)
 
int work_response (uint32_t size, const void *data)
 
void set_property (uint32_t key, const Variant &value)
 
const PropertyDescriptorsget_supported_properties () const
 
const ParameterDescriptorget_property_descriptor (uint32_t id) const
 
void announce_property_values ()
 
- Public Member Functions inherited from ARDOUR::Plugin
 Plugin (ARDOUR::AudioEngine &, ARDOUR::Session &)
 
 Plugin (const Plugin &)
 
virtual ~Plugin ()
 
XMLNodeget_state ()
 
virtual void flush ()
 
void realtime_handle_transport_stopped ()
 
void realtime_locate ()
 
void monitoring_changed ()
 
PresetRecord save_preset (std::string)
 
void remove_preset (std::string)
 
void clear_preset ()
 
const PresetRecordpreset_by_label (const std::string &)
 
const PresetRecordpreset_by_uri (const std::string &)
 
std::vector< PresetRecordget_presets ()
 
virtual bool presets_are_MIDI_programs () const
 
virtual bool current_preset_uses_general_midi () const
 
PresetRecord last_preset () const
 
bool parameter_changed_since_last_preset () const
 
virtual int first_user_preset_index () const
 
virtual bool configure_io (ChanCount, ChanCount)
 
virtual bool can_support_io_configuration (const ChanCount &, ChanCount &)
 
virtual ChanCount output_streams () const
 
virtual ChanCount input_streams () const
 
PluginInfoPtr get_info () const
 
virtual void set_info (const PluginInfoPtr inf)
 
ARDOUR::AudioEngineengine () const
 
ARDOUR::Sessionsession () const
 
void set_cycles (uint32_t c)
 
cycles_t cycles () const
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_changes (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
virtual void clear_owned_changes ()
 
PropertyListget_changes_as_properties (Command *) const
 
virtual void rdiff (std::vector< Command * > &) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void suspend_property_changes ()
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 
- Public Member Functions inherited from PBD::Destructible
 Destructible ()
 
virtual ~Destructible ()
 
void drop_references ()
 
- Public Member Functions inherited from ARDOUR::Latent
 Latent ()
 
virtual ~Latent ()
 
framecnt_t user_latency () const
 
framecnt_t effective_latency () const
 
virtual void set_user_latency (framecnt_t val)
 
- Public Member Functions inherited from ARDOUR::Workee
virtual ~Workee ()
 

Private Types

enum  PortFlag {
  PORT_INPUT = 1, PORT_OUTPUT = 1 << 1, PORT_AUDIO = 1 << 2, PORT_CONTROL = 1 << 3,
  PORT_EVENT = 1 << 4, PORT_SEQUENCE = 1 << 5, PORT_MIDI = 1 << 6, PORT_POSITION = 1 << 7,
  PORT_PATCHMSG = 1 << 8
}
 
typedef unsigned PortFlags
 

Private Member Functions

bool write_to_ui (uint32_t index, uint32_t protocol, uint32_t size, const uint8_t *body)
 
bool write_to (RingBuffer< uint8_t > *dest, uint32_t index, uint32_t protocol, uint32_t size, const uint8_t *body)
 
const std::string plugin_dir () const
 
const std::string scratch_dir () const
 
const std::string file_dir () const
 
const std::string state_dir (unsigned num) const
 
void init (const void *c_plugin, framecnt_t rate)
 
void allocate_atom_event_buffers ()
 
void run (pframes_t nsamples)
 
void load_supported_properties (PropertyDescriptors &descs)
 
void latency_compute_run ()
 
std::string do_save_preset (std::string)
 
void do_remove_preset (std::string)
 
void find_presets ()
 
void add_state (XMLNode *) const
 

Static Private Member Functions

static char * lv2_state_make_path (void *host_data, const char *path)
 

Private Attributes

Impl_impl
 
void * _module
 
LV2_Feature ** _features
 
Worker_worker
 
framecnt_t _sample_rate
 
float * _control_data
 
float * _shadow_data
 
float * _defaults
 
LV2_Evbuf ** _ev_buffers
 
LV2_Evbuf ** _atom_ev_buffers
 
float * _bpm_control_port
 Special input set by ardour. More...
 
float * _freewheel_control_port
 Special input set by ardour. More...
 
float * _latency_control_port
 Special output set by ardour. More...
 
framepos_t _next_cycle_start
 Expected start frame of next run cycle. More...
 
double _next_cycle_speed
 Expected start frame of next run cycle. More...
 
PBD::ID _insert_id
 
uint32_t _patch_port_in_index
 
uint32_t _patch_port_out_index
 
URIMap_uri_map
 
std::vector< PortFlags_port_flags
 
std::vector< size_t > _port_minimumSize
 
std::map< std::string, uint32_t > _port_indices
 
PropertyDescriptors _property_descriptors
 
RingBuffer< uint8_t > * _to_ui
 
RingBuffer< uint8_t > * _from_ui
 
LV2_DataAccess _data_access_extension_data
 
LV2_Feature _data_access_feature
 
LV2_Feature _instance_access_feature
 
LV2_Feature _make_path_feature
 
LV2_Feature _log_feature
 
LV2_Feature _work_schedule_feature
 
LV2_Feature _options_feature
 
LV2_Feature _def_state_feature
 
int32_t _block_length
 
int32_t _seq_size
 
unsigned _state_version
 
bool _was_activated
 
bool _has_state_interface
 

Friends

const void * lv2plugin_get_port_value (const char *port_symbol, void *user_data, uint32_t *size, uint32_t *type)
 

Additional Inherited Members

- Public Attributes inherited from ARDOUR::Plugin
PBD::Signal0< void > PresetAdded
 
PBD::Signal0< void > PresetRemoved
 
PBD::Signal0< void > PresetLoaded
 
PBD::Signal2< void, uint32_t,
float > 
ParameterChanged
 
PBD::Signal2< void, uint32_t,
Variant
PropertyChanged
 
PBD::Signal1< void, uint32_t > StartTouch
 
PBD::Signal1< void, uint32_t > EndTouch
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal1< void, const
PropertyChange & > 
PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal0< void > Destroyed
 
PBD::Signal0< void > DropReferences
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version = 0
 
static int loading_state_version = 0
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &)
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 
- Protected Attributes inherited from ARDOUR::Plugin
ARDOUR::AudioEngine_engine
 
ARDOUR::Session_session
 
PluginInfoPtr _info
 
uint32_t _cycles
 
std::map< std::string,
PresetRecord
_presets
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 
- Protected Attributes inherited from ARDOUR::Latent
framecnt_t _user_latency
 

Detailed Description

Definition at line 51 of file lv2_plugin.h.

Member Typedef Documentation

typedef unsigned ARDOUR::LV2Plugin::PortFlags
private

Definition at line 199 of file lv2_plugin.h.

typedef void ARDOUR::LV2Plugin::UIMessageSink(void *controller, uint32_t index, uint32_t size, uint32_t format, const void *buffer)

Definition at line 138 of file lv2_plugin.h.

Member Enumeration Documentation

Enumerator
PORT_INPUT 

Input port.

PORT_OUTPUT 

Output port.

PORT_AUDIO 

Audio (buffer of float)

PORT_CONTROL 

Control (single float)

PORT_EVENT 

Old event API event port.

PORT_SEQUENCE 

New atom API event port.

PORT_MIDI 

Event port understands MIDI.

PORT_POSITION 

Event port understands position.

PORT_PATCHMSG 

Event port supports patch:Message.

Definition at line 187 of file lv2_plugin.h.

Constructor & Destructor Documentation

LV2Plugin::LV2Plugin ( ARDOUR::AudioEngine engine,
ARDOUR::Session session,
const void *  c_plugin,
framecnt_t  sample_rate 
)

Definition at line 257 of file lv2_plugin.cc.

LV2Plugin::LV2Plugin ( const LV2Plugin other)

Definition at line 274 of file lv2_plugin.cc.

LV2Plugin::~LV2Plugin ( )

Definition at line 611 of file lv2_plugin.cc.

Member Function Documentation

void LV2Plugin::activate ( )
virtual

Implements ARDOUR::Plugin.

Definition at line 1732 of file lv2_plugin.cc.

void LV2Plugin::add_state ( XMLNode ) const
privatevirtual

Add state to an existing XMLNode

Implements ARDOUR::Plugin.

Definition at line 911 of file lv2_plugin.cc.

void LV2Plugin::allocate_atom_event_buffers ( )
private

Definition at line 1765 of file lv2_plugin.cc.

void LV2Plugin::announce_property_values ( )
virtual

Emit PropertyChanged for all current property values.

Reimplemented from ARDOUR::Plugin.

Definition at line 1456 of file lv2_plugin.cc.

set< Evoral::Parameter > LV2Plugin::automatable ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 1713 of file lv2_plugin.cc.

const void * LV2Plugin::c_plugin ( )

Definition at line 840 of file lv2_plugin.cc.

const void * LV2Plugin::c_ui ( )

Definition at line 846 of file lv2_plugin.cc.

const void * LV2Plugin::c_ui_type ( )

Definition at line 852 of file lv2_plugin.cc.

void LV2Plugin::cleanup ( )

Definition at line 1754 of file lv2_plugin.cc.

int LV2Plugin::connect_and_run ( BufferSet bufs,
ChanMapping  in,
ChanMapping  out,
pframes_t  nframes,
framecnt_t  offset 
)
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 1882 of file lv2_plugin.cc.

std::string ARDOUR::LV2Plugin::current_preset ( ) const
void LV2Plugin::deactivate ( )
virtual

Implements ARDOUR::Plugin.

Definition at line 1743 of file lv2_plugin.cc.

float LV2Plugin::default_value ( uint32_t  port)
virtual

Implements ARDOUR::Plugin.

Definition at line 725 of file lv2_plugin.cc.

string LV2Plugin::describe_parameter ( Evoral::Parameter  which)
virtual

Implements ARDOUR::Plugin.

Definition at line 1673 of file lv2_plugin.cc.

void LV2Plugin::do_remove_preset ( std::string  )
privatevirtual

Do the actual removal of a preset of the provided name

Implements ARDOUR::Plugin.

Definition at line 1128 of file lv2_plugin.cc.

std::string LV2Plugin::do_save_preset ( std::string  )
privatevirtual

Do the actual saving of the current plugin settings to a preset of the provided name. Should return a URI on success, or an empty string on failure.

Implements ARDOUR::Plugin.

Definition at line 1075 of file lv2_plugin.cc.

void LV2Plugin::emit_to_ui ( void *  controller,
UIMessageSink  sink 
)

Definition at line 1500 of file lv2_plugin.cc.

void LV2Plugin::enable_ui_emission ( )

Definition at line 1485 of file lv2_plugin.cc.

const void * LV2Plugin::extension_data ( const char *  uri) const

Definition at line 834 of file lv2_plugin.cc.

const LV2_Feature* const* ARDOUR::LV2Plugin::features ( )
inline

Definition at line 91 of file lv2_plugin.h.

const std::string LV2Plugin::file_dir ( ) const
private

Directory for snapshots of files in the scratch directory.

Definition at line 873 of file lv2_plugin.cc.

void LV2Plugin::find_presets ( )
privatevirtual

Fill _presets with our presets

Implements ARDOUR::Plugin.

Definition at line 983 of file lv2_plugin.cc.

std::string LV2Plugin::get_docs ( ) const
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 788 of file lv2_plugin.cc.

float LV2Plugin::get_parameter ( uint32_t  port) const
virtual

Implements ARDOUR::Plugin.

Definition at line 777 of file lv2_plugin.cc.

int LV2Plugin::get_parameter_descriptor ( uint32_t  which,
ParameterDescriptor desc 
) const
virtual

Implements ARDOUR::Plugin.

Definition at line 1625 of file lv2_plugin.cc.

std::string LV2Plugin::get_parameter_docs ( uint32_t  which) const
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 801 of file lv2_plugin.cc.

const ParameterDescriptor & LV2Plugin::get_property_descriptor ( uint32_t  id) const
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 1352 of file lv2_plugin.cc.

boost::shared_ptr< ScalePoints > LV2Plugin::get_scale_points ( uint32_t  port_index) const
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 2194 of file lv2_plugin.cc.

const PropertyDescriptors& ARDOUR::LV2Plugin::get_supported_properties ( ) const
inlinevirtual

Get a descrption of all properties supported by this plugin.

Properties are distinct from parameters in that they are potentially dynamic, referred to by key, and do not correspond 1:1 with ports.

For LV2 plugins, properties are implemented by sending/receiving set/get messages to/from the plugin via event ports.

Reimplemented from ARDOUR::Plugin.

Definition at line 156 of file lv2_plugin.h.

bool LV2Plugin::has_editor ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 1161 of file lv2_plugin.cc.

bool LV2Plugin::has_message_output ( ) const

Definition at line 1167 of file lv2_plugin.cc.

void LV2Plugin::init ( const void *  c_plugin,
framecnt_t  rate 
)
private

Definition at line 294 of file lv2_plugin.cc.

bool LV2Plugin::is_external_kx ( ) const

Definition at line 654 of file lv2_plugin.cc.

bool LV2Plugin::is_external_ui ( ) const

Definition at line 645 of file lv2_plugin.cc.

const char * LV2Plugin::label ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 695 of file lv2_plugin.cc.

void LV2Plugin::latency_compute_run ( )
private

Definition at line 2241 of file lv2_plugin.cc.

bool LV2Plugin::load_preset ( PresetRecord  r)
virtual

Set parameters using a preset

Reimplemented from ARDOUR::Plugin.

Definition at line 1033 of file lv2_plugin.cc.

void LV2Plugin::load_supported_properties ( PropertyDescriptors descs)
private

Definition at line 1419 of file lv2_plugin.cc.

char * LV2Plugin::lv2_state_make_path ( void *  host_data,
const char *  path 
)
staticprivate

Implementation of state:makePath for files created at instantiation time. Note this is not used for files created at save time (Lilv deals with that).

Definition at line 889 of file lv2_plugin.cc.

const char * LV2Plugin::maker ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 707 of file lv2_plugin.cc.

const char * LV2Plugin::name ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 701 of file lv2_plugin.cc.

uint32_t LV2Plugin::nth_parameter ( uint32_t  port,
bool &  ok 
) const
virtual

Implements ARDOUR::Plugin.

Definition at line 818 of file lv2_plugin.cc.

uint32_t LV2Plugin::num_ports ( ) const

Definition at line 713 of file lv2_plugin.cc.

uint32_t LV2Plugin::parameter_count ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 719 of file lv2_plugin.cc.

bool LV2Plugin::parameter_is_audio ( uint32_t  param) const
virtual

Implements ARDOUR::Plugin.

Definition at line 2154 of file lv2_plugin.cc.

bool LV2Plugin::parameter_is_control ( uint32_t  param) const
virtual

Implements ARDOUR::Plugin.

Definition at line 2147 of file lv2_plugin.cc.

bool LV2Plugin::parameter_is_event ( uint32_t  param) const

Definition at line 2161 of file lv2_plugin.cc.

bool LV2Plugin::parameter_is_input ( uint32_t  param) const
virtual

Implements ARDOUR::Plugin.

Definition at line 2175 of file lv2_plugin.cc.

bool LV2Plugin::parameter_is_output ( uint32_t  param) const
virtual

Implements ARDOUR::Plugin.

Definition at line 2168 of file lv2_plugin.cc.

bool ARDOUR::LV2Plugin::parameter_is_toggled ( uint32_t  ) const
const std::string LV2Plugin::plugin_dir ( ) const
private

Directory for all plugin state.

Definition at line 859 of file lv2_plugin.cc.

uint32_t LV2Plugin::port_index ( const char *  symbol) const

Definition at line 743 of file lv2_plugin.cc.

const char * LV2Plugin::port_symbol ( uint32_t  port) const

Definition at line 731 of file lv2_plugin.cc.

void LV2Plugin::print_parameter ( uint32_t  param,
char *  buf,
uint32_t  len 
) const
virtual

Implements ARDOUR::Plugin.

Definition at line 2182 of file lv2_plugin.cc.

void ARDOUR::LV2Plugin::remove_preset ( std::string  uri)
void LV2Plugin::run ( pframes_t  nsamples)
private

Definition at line 2221 of file lv2_plugin.cc.

bool ARDOUR::LV2Plugin::save_preset ( std::string  uri)
const std::string LV2Plugin::scratch_dir ( ) const
private

Directory for files created by the plugin (except during save).

Definition at line 866 of file lv2_plugin.cc.

int ARDOUR::LV2Plugin::set_block_size ( pframes_t  )
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 99 of file lv2_plugin.h.

void LV2Plugin::set_insert_id ( PBD::ID  id)
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 1540 of file lv2_plugin.cc.

void LV2Plugin::set_parameter ( uint32_t  which,
float  val 
)
virtual
Parameters
val`plugin' value

Reimplemented from ARDOUR::Plugin.

Definition at line 755 of file lv2_plugin.cc.

void LV2Plugin::set_property ( uint32_t  key,
const Variant value 
)
virtual

Set a property from the UI.

This is not UI-specific, but may only be used by one thread. If the Ardour UI is present, that is the UI thread, but otherwise, any thread except the audio thread may call this function as long as it is not called concurrently.

Reimplemented from ARDOUR::Plugin.

Definition at line 1311 of file lv2_plugin.cc.

int LV2Plugin::set_state ( const XMLNode node,
int  version 
)
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 1546 of file lv2_plugin.cc.

framecnt_t LV2Plugin::signal_latency ( ) const
virtual

Implements ARDOUR::Latent.

Definition at line 1703 of file lv2_plugin.cc.

const std::string LV2Plugin::state_dir ( unsigned  num) const
private

Directory to save state snapshot version num into.

Definition at line 880 of file lv2_plugin.cc.

std::string ARDOUR::LV2Plugin::state_node_name ( ) const
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 106 of file lv2_plugin.h.

bool LV2Plugin::ui_is_resizable ( ) const

Definition at line 663 of file lv2_plugin.cc.

string LV2Plugin::unique_id ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 683 of file lv2_plugin.cc.

const char * LV2Plugin::uri ( ) const

Definition at line 689 of file lv2_plugin.cc.

URIMap& ARDOUR::LV2Plugin::uri_map ( )
inline

Definition at line 149 of file lv2_plugin.h.

const URIMap& ARDOUR::LV2Plugin::uri_map ( ) const
inline

Definition at line 150 of file lv2_plugin.h.

int LV2Plugin::work ( uint32_t  size,
const void *  data 
)
virtual

Do some work in the worker thread.

Implements ARDOUR::Workee.

Definition at line 1526 of file lv2_plugin.cc.

int LV2Plugin::work_response ( uint32_t  size,
const void *  data 
)
virtual

Handle a response from the worker thread in the audio thread.

Implements ARDOUR::Workee.

Definition at line 1533 of file lv2_plugin.cc.

Worker* ARDOUR::LV2Plugin::worker ( )
inline

Definition at line 147 of file lv2_plugin.h.

bool LV2Plugin::write_from_ui ( uint32_t  index,
uint32_t  protocol,
uint32_t  size,
const uint8_t *  body 
)

Definition at line 1198 of file lv2_plugin.cc.

bool LV2Plugin::write_to ( RingBuffer< uint8_t > *  dest,
uint32_t  index,
uint32_t  protocol,
uint32_t  size,
const uint8_t *  body 
)
private

Definition at line 1179 of file lv2_plugin.cc.

bool LV2Plugin::write_to_ui ( uint32_t  index,
uint32_t  protocol,
uint32_t  size,
const uint8_t *  body 
)
private

Definition at line 1232 of file lv2_plugin.cc.

Friends And Related Function Documentation

const void* lv2plugin_get_port_value ( const char *  port_symbol,
void *  user_data,
uint32_t *  size,
uint32_t *  type 
)
friend

Member Data Documentation

LV2_Evbuf** ARDOUR::LV2Plugin::_atom_ev_buffers
private

Definition at line 171 of file lv2_plugin.h.

int32_t ARDOUR::LV2Plugin::_block_length
private

Definition at line 243 of file lv2_plugin.h.

float* ARDOUR::LV2Plugin::_bpm_control_port
private

Special input set by ardour.

Definition at line 172 of file lv2_plugin.h.

float* ARDOUR::LV2Plugin::_control_data
private

Definition at line 167 of file lv2_plugin.h.

LV2_DataAccess ARDOUR::LV2Plugin::_data_access_extension_data
private

Definition at line 233 of file lv2_plugin.h.

LV2_Feature ARDOUR::LV2Plugin::_data_access_feature
private

Definition at line 234 of file lv2_plugin.h.

LV2_Feature ARDOUR::LV2Plugin::_def_state_feature
private

Definition at line 240 of file lv2_plugin.h.

float* ARDOUR::LV2Plugin::_defaults
private

Definition at line 169 of file lv2_plugin.h.

LV2_Evbuf** ARDOUR::LV2Plugin::_ev_buffers
private

Definition at line 170 of file lv2_plugin.h.

LV2_Feature** ARDOUR::LV2Plugin::_features
private

Definition at line 164 of file lv2_plugin.h.

float* ARDOUR::LV2Plugin::_freewheel_control_port
private

Special input set by ardour.

Definition at line 173 of file lv2_plugin.h.

RingBuffer<uint8_t>* ARDOUR::LV2Plugin::_from_ui
private

Definition at line 227 of file lv2_plugin.h.

bool ARDOUR::LV2Plugin::_has_state_interface
private

Definition at line 249 of file lv2_plugin.h.

Impl* ARDOUR::LV2Plugin::_impl
private

Definition at line 161 of file lv2_plugin.h.

PBD::ID ARDOUR::LV2Plugin::_insert_id
private

Definition at line 177 of file lv2_plugin.h.

LV2_Feature ARDOUR::LV2Plugin::_instance_access_feature
private

Definition at line 235 of file lv2_plugin.h.

float* ARDOUR::LV2Plugin::_latency_control_port
private

Special output set by ardour.

Definition at line 174 of file lv2_plugin.h.

LV2_Feature ARDOUR::LV2Plugin::_log_feature
private

Definition at line 237 of file lv2_plugin.h.

LV2_Feature ARDOUR::LV2Plugin::_make_path_feature
private

Definition at line 236 of file lv2_plugin.h.

void* ARDOUR::LV2Plugin::_module
private

Definition at line 163 of file lv2_plugin.h.

double ARDOUR::LV2Plugin::_next_cycle_speed
private

Expected start frame of next run cycle.

Definition at line 176 of file lv2_plugin.h.

framepos_t ARDOUR::LV2Plugin::_next_cycle_start
private

Expected start frame of next run cycle.

Definition at line 175 of file lv2_plugin.h.

LV2_Feature ARDOUR::LV2Plugin::_options_feature
private

Definition at line 239 of file lv2_plugin.h.

uint32_t ARDOUR::LV2Plugin::_patch_port_in_index
private

Definition at line 178 of file lv2_plugin.h.

uint32_t ARDOUR::LV2Plugin::_patch_port_out_index
private

Definition at line 179 of file lv2_plugin.h.

std::vector<PortFlags> ARDOUR::LV2Plugin::_port_flags
private

Definition at line 201 of file lv2_plugin.h.

std::map<std::string,uint32_t> ARDOUR::LV2Plugin::_port_indices
private

Definition at line 203 of file lv2_plugin.h.

std::vector<size_t> ARDOUR::LV2Plugin::_port_minimumSize
private

Definition at line 202 of file lv2_plugin.h.

PropertyDescriptors ARDOUR::LV2Plugin::_property_descriptors
private

Definition at line 205 of file lv2_plugin.h.

framecnt_t ARDOUR::LV2Plugin::_sample_rate
private

Definition at line 166 of file lv2_plugin.h.

int32_t ARDOUR::LV2Plugin::_seq_size
private

Definition at line 244 of file lv2_plugin.h.

float* ARDOUR::LV2Plugin::_shadow_data
private

Definition at line 168 of file lv2_plugin.h.

unsigned ARDOUR::LV2Plugin::_state_version
mutableprivate

Definition at line 246 of file lv2_plugin.h.

RingBuffer<uint8_t>* ARDOUR::LV2Plugin::_to_ui
private

Definition at line 226 of file lv2_plugin.h.

URIMap& ARDOUR::LV2Plugin::_uri_map
private

Definition at line 180 of file lv2_plugin.h.

bool ARDOUR::LV2Plugin::_was_activated
private

Definition at line 248 of file lv2_plugin.h.

LV2_Feature ARDOUR::LV2Plugin::_work_schedule_feature
private

Definition at line 238 of file lv2_plugin.h.

Worker* ARDOUR::LV2Plugin::_worker
private

Definition at line 165 of file lv2_plugin.h.


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