Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::Plugin Class Referenceabstract

#include <plugin.h>

Inheritance diagram for ARDOUR::Plugin:
[legend]

Classes

struct  Display_Image_Surface
 
struct  IOPortDescription
 
struct  PresetRecord
 

Public Types

typedef std::map< uint32_t, ParameterDescriptorPropertyDescriptors
 

Public Member Functions

 Plugin (ARDOUR::AudioEngine &, ARDOUR::Session &)
 
 Plugin (const Plugin &)
 
virtual ~Plugin ()
 
XMLNodeget_state () const
 
virtual int set_state (const XMLNode &, int version)
 
virtual void set_insert_id (PBD::ID id)
 
virtual void set_state_dir (const std::string &d="")
 
void set_insert (PlugInsertBase *pib, uint32_t num)
 
PlugInsertBaseplugin_insert () const
 
uint32_t plugin_number () const
 
virtual std::string unique_id () const =0
 
virtual const char * label () const =0
 
virtual const char * name () const =0
 
virtual const char * maker () const =0
 
virtual uint32_t parameter_count () const =0
 
virtual float default_value (uint32_t port)=0
 
virtual float get_parameter (uint32_t which) const =0
 
virtual std::string get_docs () const
 
virtual std::string get_parameter_docs (uint32_t) const
 
virtual int get_parameter_descriptor (uint32_t which, ParameterDescriptor &) const =0
 
virtual uint32_t nth_parameter (uint32_t which, bool &ok) const =0
 
virtual std::string parameter_label (uint32_t which) const
 
virtual void activate ()=0
 
virtual void deactivate ()=0
 
virtual void flush ()
 
virtual std::set< Evoral::Parameterautomatable () const =0
 
virtual std::string describe_parameter (Evoral::Parameter)=0
 
virtual std::string state_node_name () const =0
 
virtual bool print_parameter (uint32_t, std::string &) const
 
virtual bool parameter_is_audio (uint32_t) const =0
 
virtual bool parameter_is_control (uint32_t) const =0
 
virtual bool parameter_is_input (uint32_t) const =0
 
virtual bool parameter_is_output (uint32_t) const =0
 
virtual uint32_t designated_bypass_port ()
 
virtual IOPortDescription describe_io_port (DataType dt, bool input, uint32_t id) const
 
virtual PluginOutputConfiguration possible_output () const
 
virtual void set_automation_control (uint32_t, std::shared_ptr< ARDOUR::AutomationControl >)
 
virtual std::shared_ptr< ScalePointsget_scale_points (uint32_t) const
 
samplecnt_t signal_latency () const
 
samplecnt_t signal_tailtime () const
 
virtual samplecnt_t max_latency () const
 
virtual int set_block_size (pframes_t nframes)=0
 
virtual bool requires_fixed_sized_buffers () const
 
virtual bool inplace_broken () const
 
virtual bool connect_all_audio_outputs () const
 
virtual int connect_and_run (BufferSet &bufs, samplepos_t start, samplepos_t end, double speed, ChanMapping const &in, ChanMapping const &out, pframes_t nframes, samplecnt_t offset)
 
bool write_immediate_event (Evoral::EventType event_type, size_t size, const uint8_t *buf)
 
void realtime_handle_transport_stopped ()
 
void realtime_locate (bool)
 
void monitoring_changed ()
 
virtual void set_non_realtime (bool)
 
virtual void add_slave (std::shared_ptr< Plugin >, bool realtime)
 
virtual void remove_slave (std::shared_ptr< Plugin >)
 
virtual bool has_inline_display ()
 
virtual bool inline_display_in_gui ()
 
virtual Display_Image_Surfacerender_inline_display (uint32_t, uint32_t)
 
virtual bool has_midnam ()
 
virtual bool read_midnam ()
 
virtual std::string midnam_model ()
 
virtual bool knows_bank_patch ()
 
virtual uint32_t bank_patch (uint8_t chn)
 
PresetRecord save_preset (std::string name)
 
void remove_preset (std::string)
 
virtual bool load_preset (PresetRecord)
 
void clear_preset ()
 
const PresetRecordpreset_by_label (const std::string &)
 
const PresetRecordpreset_by_uri (const std::string &)
 
virtual std::vector< PresetRecordget_presets ()
 
PresetRecord last_preset () const
 
bool parameter_changed_since_last_preset () const
 
virtual int first_user_preset_index () const
 
virtual bool has_editor () const =0
 
virtual bool reconfigure_io (ChanCount, ChanCount, ChanCount)
 
virtual bool match_variable_io (ChanCount &, ChanCount &, ChanCount &)
 
virtual ChanCount output_streams () const
 
virtual ChanCount input_streams () const
 
virtual void set_info (const PluginInfoPtr info)
 
PluginInfoPtr get_info () const
 
virtual void set_owner (SessionObject *o)
 
SessionObjectowner () const
 
void set_cycles (uint32_t c)
 
cycles_t cycles () const
 
void use_for_impulse_analysis ()
 
ARDOUR::AudioEngineengine () const
 
ARDOUR::Sessionsession () const
 
virtual const PropertyDescriptorsget_supported_properties () const
 
virtual const ParameterDescriptorget_property_descriptor (uint32_t id) const
 
virtual void set_property (uint32_t key, const Variant &value)
 
virtual Variant get_property_value (uint32_t) const
 
virtual void announce_property_values ()
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_change (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 (PBD::Command *) const
 
virtual void rdiff (std::vector< PBD::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
virtual ~Destructible ()
 
virtual void drop_references ()
 
- Public Member Functions inherited from ARDOUR::HasLatency
virtual ~HasLatency ()
 
- Public Member Functions inherited from ARDOUR::HasTailTime
virtual ~HasTailTime ()
 

Public Attributes

PBD::Signal< void()> QueueDraw
 
PBD::Signal< void()> UpdateMidnam
 
PBD::Signal< void()> UpdatedMidnam
 
PBD::Signal< void(uint8_t)> BankPatchChange
 
PBD::Signal< void()> PresetAdded
 
PBD::Signal< void()> PresetRemoved
 
PBD::Signal< void()> PresetLoaded
 
PBD::Signal< void()> PresetDirty
 
PBD::Signal< void(uint32_t, float)> PresetPortSetValue
 
PBD::Signal< void(uint32_t, float)> ParameterChangedExternally
 
PBD::Signal< void(uint32_t, Variant)> PropertyChanged
 
PBD::Signal< void(uint32_t)> StartTouch
 
PBD::Signal< void(uint32_t)> EndTouch
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal< void(const PropertyChange &)> PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal< void()> Destroyed
 
PBD::Signal< void()> DropReferences
 

Static Public Attributes

static PBD::Signal< void(std::string, Plugin *, bool)> PresetsChanged
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 

Protected Member Functions

virtual void parameter_changed_externally (uint32_t which, float val)
 
virtual void set_parameter (uint32_t which, float val, sampleoffset_t when)
 
virtual std::string do_save_preset (std::string)=0
 
virtual void do_remove_preset (std::string)=0
 
void state_changed ()
 
- 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 &) const
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 
bool regenerate_xml_or_string_ids () const
 

Protected Attributes

ARDOUR::AudioEngine_engine
 
ARDOUR::Session_session
 
PluginInfoPtr _info
 
uint32_t _cycles
 
SessionObject_owner
 
bool _for_impulse_analysis
 
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
 

Private Member Functions

virtual samplecnt_t plugin_latency () const =0
 
virtual samplecnt_t plugin_tailtime () const
 
virtual void find_presets ()=0
 
virtual void add_state (XMLNode *) const =0
 
void invalidate_preset_cache (std::string const &, Plugin *, bool)
 
void resolve_midi ()
 

Private Attributes

bool _have_presets
 
MidiNoteTracker _tracker
 
BufferSet _pending_stop_events
 
bool _have_pending_stop_events
 
PresetRecord _last_preset
 
bool _parameter_changed_since_last_preset
 
MidiRingBuffer< samplepos_t_immediate_events
 
std::atomic< bool > _resolve_midi
 
PlugInsertBase_pib
 
uint32_t _num
 
PBD::ScopedConnection _preset_connection
 

Friends

class PluginInsert
 
class PlugInsertBase
 
class RegionFxPlugin
 
class Session
 

Detailed Description

A plugin is an external module (usually 3rd party provided) loaded into Ardour for the purpose of digital signal processing.

This class provides an abstraction for methords provided by all supported plugin standards such as presets, name, parameters etc.

Plugins are not used directly in Ardour but always wrapped by a PluginInsert.

Definition at line 77 of file plugin.h.

Member Typedef Documentation

◆ PropertyDescriptors

Definition at line 340 of file plugin.h.

Constructor & Destructor Documentation

◆ Plugin() [1/2]

ARDOUR::Plugin::Plugin ( ARDOUR::AudioEngine ,
ARDOUR::Session  
)

◆ Plugin() [2/2]

ARDOUR::Plugin::Plugin ( const Plugin )

◆ ~Plugin()

virtual ARDOUR::Plugin::~Plugin ( )
virtual

Member Function Documentation

◆ activate()

virtual void ARDOUR::Plugin::activate ( )
pure virtual

◆ add_slave()

virtual void ARDOUR::Plugin::add_slave ( std::shared_ptr< Plugin ,
bool  realtime 
)
inlinevirtual

Reimplemented in ARDOUR::VST3Plugin, and ARDOUR::LV2Plugin.

Definition at line 203 of file plugin.h.

◆ add_state()

virtual void ARDOUR::Plugin::add_state ( XMLNode ) const
privatepure virtual

◆ announce_property_values()

virtual void ARDOUR::Plugin::announce_property_values ( )
inlinevirtual

Emit PropertyChanged for all current property values.

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 377 of file plugin.h.

◆ automatable()

virtual std::set<Evoral::Parameter> ARDOUR::Plugin::automatable ( ) const
pure virtual

◆ bank_patch()

virtual uint32_t ARDOUR::Plugin::bank_patch ( uint8_t  chn)
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 225 of file plugin.h.

◆ clear_preset()

void ARDOUR::Plugin::clear_preset ( )

◆ connect_all_audio_outputs()

virtual bool ARDOUR::Plugin::connect_all_audio_outputs ( ) const
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin, and ARDOUR::LuaProc.

Definition at line 186 of file plugin.h.

◆ connect_and_run()

virtual int ARDOUR::Plugin::connect_and_run ( BufferSet bufs,
samplepos_t  start,
samplepos_t  end,
double  speed,
ChanMapping const &  in,
ChanMapping const &  out,
pframes_t  nframes,
samplecnt_t  offset 
)
virtual

◆ cycles()

cycles_t ARDOUR::Plugin::cycles ( ) const
inline

Definition at line 330 of file plugin.h.

◆ deactivate()

virtual void ARDOUR::Plugin::deactivate ( )
pure virtual

◆ default_value()

virtual float ARDOUR::Plugin::default_value ( uint32_t  port)
pure virtual

◆ describe_io_port()

virtual IOPortDescription ARDOUR::Plugin::describe_io_port ( DataType  dt,
bool  input,
uint32_t  id 
) const
virtual

◆ describe_parameter()

virtual std::string ARDOUR::Plugin::describe_parameter ( Evoral::Parameter  )
pure virtual

◆ designated_bypass_port()

virtual uint32_t ARDOUR::Plugin::designated_bypass_port ( )
inlinevirtual

Reimplemented in ARDOUR::VSTPlugin, ARDOUR::VST3Plugin, ARDOUR::LV2Plugin, and ARDOUR::LuaProc.

Definition at line 132 of file plugin.h.

◆ do_remove_preset()

virtual void ARDOUR::Plugin::do_remove_preset ( std::string  )
protectedpure virtual

Do the actual removal of a preset of the provided name

Implemented in ARDOUR::VST3Plugin, ARDOUR::LV2Plugin, ARDOUR::LuaProc, ARDOUR::AUPlugin, ARDOUR::VSTPlugin, and ARDOUR::LadspaPlugin.

◆ do_save_preset()

virtual std::string ARDOUR::Plugin::do_save_preset ( std::string  )
protectedpure virtual

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.

Implemented in ARDOUR::VST3Plugin, ARDOUR::LV2Plugin, ARDOUR::LuaProc, ARDOUR::VSTPlugin, ARDOUR::LadspaPlugin, and ARDOUR::AUPlugin.

◆ engine()

ARDOUR::AudioEngine& ARDOUR::Plugin::engine ( ) const
inline

Definition at line 337 of file plugin.h.

◆ find_presets()

virtual void ARDOUR::Plugin::find_presets ( )
privatepure virtual

◆ first_user_preset_index()

virtual int ARDOUR::Plugin::first_user_preset_index ( ) const
inlinevirtual

Reimplemented in ARDOUR::VSTPlugin.

Definition at line 289 of file plugin.h.

◆ flush()

virtual void ARDOUR::Plugin::flush ( )
inlinevirtual

Reimplemented in ARDOUR::AUPlugin.

Definition at line 115 of file plugin.h.

◆ get_docs()

virtual std::string ARDOUR::Plugin::get_docs ( ) const
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin, and ARDOUR::LuaProc.

Definition at line 106 of file plugin.h.

◆ get_info()

PluginInfoPtr ARDOUR::Plugin::get_info ( ) const
inline

Definition at line 324 of file plugin.h.

◆ get_parameter()

virtual float ARDOUR::Plugin::get_parameter ( uint32_t  which) const
pure virtual

◆ get_parameter_descriptor()

virtual int ARDOUR::Plugin::get_parameter_descriptor ( uint32_t  which,
ParameterDescriptor  
) const
pure virtual

◆ get_parameter_docs()

virtual std::string ARDOUR::Plugin::get_parameter_docs ( uint32_t  ) const
inlinevirtual

Reimplemented in ARDOUR::LuaProc, and ARDOUR::LV2Plugin.

Definition at line 107 of file plugin.h.

◆ get_presets()

virtual std::vector<PresetRecord> ARDOUR::Plugin::get_presets ( )
virtual

◆ get_property_descriptor()

virtual const ParameterDescriptor& ARDOUR::Plugin::get_property_descriptor ( uint32_t  id) const
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 356 of file plugin.h.

◆ get_property_value()

virtual Variant ARDOUR::Plugin::get_property_value ( uint32_t  ) const
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 371 of file plugin.h.

◆ get_scale_points()

virtual std::shared_ptr<ScalePoints> ARDOUR::Plugin::get_scale_points ( uint32_t  ) const
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin, ARDOUR::LuaProc, and ARDOUR::LadspaPlugin.

Definition at line 165 of file plugin.h.

◆ get_state()

XMLNode& ARDOUR::Plugin::get_state ( ) const
virtual

Implements PBD::Stateful.

◆ get_supported_properties()

virtual const PropertyDescriptors& ARDOUR::Plugin::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 in ARDOUR::LV2Plugin.

Definition at line 350 of file plugin.h.

◆ has_editor()

virtual bool ARDOUR::Plugin::has_editor ( ) const
pure virtual
Returns
true if plugin has a custom plugin GUI

Implemented in ARDOUR::VSTPlugin, ARDOUR::VST3Plugin, ARDOUR::LV2Plugin, ARDOUR::LuaProc, ARDOUR::LadspaPlugin, and ARDOUR::AUPlugin.

◆ has_inline_display()

virtual bool ARDOUR::Plugin::has_inline_display ( )
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin, and ARDOUR::LuaProc.

Definition at line 213 of file plugin.h.

◆ has_midnam()

virtual bool ARDOUR::Plugin::has_midnam ( )
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 218 of file plugin.h.

◆ inline_display_in_gui()

virtual bool ARDOUR::Plugin::inline_display_in_gui ( )
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 214 of file plugin.h.

◆ inplace_broken()

virtual bool ARDOUR::Plugin::inplace_broken ( ) const
inlinevirtual

Reimplemented in ARDOUR::VSTPlugin.

Definition at line 185 of file plugin.h.

◆ input_streams()

virtual ChanCount ARDOUR::Plugin::input_streams ( ) const
virtual

Reimplemented in ARDOUR::LuaProc, and ARDOUR::AUPlugin.

◆ invalidate_preset_cache()

void ARDOUR::Plugin::invalidate_preset_cache ( std::string const &  ,
Plugin ,
bool   
)
private

◆ knows_bank_patch()

virtual bool ARDOUR::Plugin::knows_bank_patch ( )
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 224 of file plugin.h.

◆ label()

virtual const char* ARDOUR::Plugin::label ( ) const
pure virtual

◆ last_preset()

PresetRecord ARDOUR::Plugin::last_preset ( ) const
inline
Returns
Last preset to be requested; the settings may have been changed since; find out with parameter_changed_since_last_preset.

Definition at line 279 of file plugin.h.

◆ load_preset()

virtual bool ARDOUR::Plugin::load_preset ( PresetRecord  )
virtual

◆ maker()

virtual const char* ARDOUR::Plugin::maker ( ) const
pure virtual

◆ match_variable_io()

virtual bool ARDOUR::Plugin::match_variable_io ( ChanCount ,
ChanCount ,
ChanCount  
)
inlinevirtual

Reimplemented in ARDOUR::LuaProc, and ARDOUR::AUPlugin.

Definition at line 318 of file plugin.h.

◆ max_latency()

virtual samplecnt_t ARDOUR::Plugin::max_latency ( ) const
inlinevirtual

the max possible latency a plugin will have

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 181 of file plugin.h.

◆ midnam_model()

virtual std::string ARDOUR::Plugin::midnam_model ( )
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 220 of file plugin.h.

◆ monitoring_changed()

void ARDOUR::Plugin::monitoring_changed ( )

◆ name()

virtual const char* ARDOUR::Plugin::name ( ) const
pure virtual

◆ nth_parameter()

virtual uint32_t ARDOUR::Plugin::nth_parameter ( uint32_t  which,
bool &  ok 
) const
pure virtual

◆ output_streams()

virtual ChanCount ARDOUR::Plugin::output_streams ( ) const
virtual

Reimplemented in ARDOUR::LuaProc, and ARDOUR::AUPlugin.

◆ owner()

SessionObject* ARDOUR::Plugin::owner ( ) const
inline

Definition at line 327 of file plugin.h.

◆ parameter_changed_externally()

virtual void ARDOUR::Plugin::parameter_changed_externally ( uint32_t  which,
float  val 
)
protectedvirtual

Reimplemented in ARDOUR::VSTPlugin.

◆ parameter_changed_since_last_preset()

bool ARDOUR::Plugin::parameter_changed_since_last_preset ( ) const
inline

Definition at line 284 of file plugin.h.

◆ parameter_count()

virtual uint32_t ARDOUR::Plugin::parameter_count ( ) const
pure virtual

◆ parameter_is_audio()

virtual bool ARDOUR::Plugin::parameter_is_audio ( uint32_t  ) const
pure virtual

◆ parameter_is_control()

virtual bool ARDOUR::Plugin::parameter_is_control ( uint32_t  ) const
pure virtual

◆ parameter_is_input()

virtual bool ARDOUR::Plugin::parameter_is_input ( uint32_t  ) const
pure virtual

◆ parameter_is_output()

virtual bool ARDOUR::Plugin::parameter_is_output ( uint32_t  ) const
pure virtual

◆ parameter_label()

virtual std::string ARDOUR::Plugin::parameter_label ( uint32_t  which) const
virtual

◆ plugin_insert()

PlugInsertBase* ARDOUR::Plugin::plugin_insert ( ) const
inline

Definition at line 95 of file plugin.h.

◆ plugin_latency()

virtual samplecnt_t ARDOUR::Plugin::plugin_latency ( ) const
privatepure virtual

◆ plugin_number()

uint32_t ARDOUR::Plugin::plugin_number ( ) const
inline

Definition at line 96 of file plugin.h.

◆ plugin_tailtime()

virtual samplecnt_t ARDOUR::Plugin::plugin_tailtime ( ) const
privatevirtual

tail duration in samples. e.g. for reverb or delay plugins.

The default when unknown is 2 sec

Reimplemented in ARDOUR::VST3Plugin.

◆ possible_output()

virtual PluginOutputConfiguration ARDOUR::Plugin::possible_output ( ) const
virtual

◆ preset_by_label()

const PresetRecord* ARDOUR::Plugin::preset_by_label ( const std::string &  )

◆ preset_by_uri()

const PresetRecord* ARDOUR::Plugin::preset_by_uri ( const std::string &  )

◆ print_parameter()

virtual bool ARDOUR::Plugin::print_parameter ( uint32_t  ,
std::string &   
) const
inlinevirtual

Reimplemented in ARDOUR::VSTPlugin, and ARDOUR::VST3Plugin.

Definition at line 125 of file plugin.h.

◆ read_midnam()

virtual bool ARDOUR::Plugin::read_midnam ( )
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 219 of file plugin.h.

◆ realtime_handle_transport_stopped()

void ARDOUR::Plugin::realtime_handle_transport_stopped ( )

◆ realtime_locate()

void ARDOUR::Plugin::realtime_locate ( bool  )

◆ reconfigure_io()

virtual bool ARDOUR::Plugin::reconfigure_io ( ChanCount  ,
ChanCount  ,
ChanCount   
)
inlinevirtual

Reimplemented in ARDOUR::LuaProc, and ARDOUR::AUPlugin.

Definition at line 317 of file plugin.h.

◆ remove_preset()

void ARDOUR::Plugin::remove_preset ( std::string  )

◆ remove_slave()

virtual void ARDOUR::Plugin::remove_slave ( std::shared_ptr< Plugin )
inlinevirtual

Reimplemented in ARDOUR::VST3Plugin, and ARDOUR::LV2Plugin.

Definition at line 204 of file plugin.h.

◆ render_inline_display()

virtual Display_Image_Surface* ARDOUR::Plugin::render_inline_display ( uint32_t  ,
uint32_t   
)
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 215 of file plugin.h.

◆ requires_fixed_sized_buffers()

virtual bool ARDOUR::Plugin::requires_fixed_sized_buffers ( ) const
inlinevirtual

Reimplemented in ARDOUR::VSTPlugin, ARDOUR::LV2Plugin, and ARDOUR::LuaProc.

Definition at line 184 of file plugin.h.

◆ resolve_midi()

void ARDOUR::Plugin::resolve_midi ( )
private

◆ save_preset()

PresetRecord ARDOUR::Plugin::save_preset ( std::string  name)

Create a new plugin-preset from the current state

Parameters
namelabel to use for new preset (needs to be unique)
Returns
PresetRecord with empty URI on failure

◆ session()

ARDOUR::Session& ARDOUR::Plugin::session ( ) const
inline

Definition at line 338 of file plugin.h.

◆ set_automation_control()

virtual void ARDOUR::Plugin::set_automation_control ( uint32_t  ,
std::shared_ptr< ARDOUR::AutomationControl  
)
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin, and ARDOUR::VST3Plugin.

Definition at line 163 of file plugin.h.

◆ set_block_size()

virtual int ARDOUR::Plugin::set_block_size ( pframes_t  nframes)
pure virtual

◆ set_cycles()

void ARDOUR::Plugin::set_cycles ( uint32_t  c)
inline

Definition at line 329 of file plugin.h.

◆ set_info()

virtual void ARDOUR::Plugin::set_info ( const PluginInfoPtr  info)
inlinevirtual

Reimplemented in ARDOUR::AUPlugin.

Definition at line 323 of file plugin.h.

◆ set_insert()

void ARDOUR::Plugin::set_insert ( PlugInsertBase pib,
uint32_t  num 
)
inline

Definition at line 90 of file plugin.h.

◆ set_insert_id()

virtual void ARDOUR::Plugin::set_insert_id ( PBD::ID  id)
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 87 of file plugin.h.

◆ set_non_realtime()

virtual void ARDOUR::Plugin::set_non_realtime ( bool  )
inlinevirtual

Reimplemented in ARDOUR::VST3Plugin, ARDOUR::LV2Plugin, and ARDOUR::AUPlugin.

Definition at line 201 of file plugin.h.

◆ set_owner()

virtual void ARDOUR::Plugin::set_owner ( SessionObject o)
inlinevirtual

Reimplemented in ARDOUR::VST3Plugin.

Definition at line 326 of file plugin.h.

◆ set_parameter()

virtual void ARDOUR::Plugin::set_parameter ( uint32_t  which,
float  val,
sampleoffset_t  when 
)
protectedvirtual

◆ set_property()

virtual void ARDOUR::Plugin::set_property ( uint32_t  key,
const Variant value 
)
inlinevirtual

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 in ARDOUR::LV2Plugin.

Definition at line 369 of file plugin.h.

◆ set_state()

virtual int ARDOUR::Plugin::set_state ( const XMLNode ,
int  version 
)
virtual

◆ set_state_dir()

virtual void ARDOUR::Plugin::set_state_dir ( const std::string &  d = "")
inlinevirtual

Reimplemented in ARDOUR::LV2Plugin.

Definition at line 88 of file plugin.h.

◆ signal_latency()

samplecnt_t ARDOUR::Plugin::signal_latency ( ) const
inlinevirtual

Implements ARDOUR::HasLatency.

Definition at line 170 of file plugin.h.

◆ signal_tailtime()

samplecnt_t ARDOUR::Plugin::signal_tailtime ( ) const
inlinevirtual

Implements ARDOUR::HasTailTime.

Definition at line 175 of file plugin.h.

◆ state_changed()

void ARDOUR::Plugin::state_changed ( )
protected

Plugin's [internal] state changed, mark preset and session as modified.

◆ state_node_name()

virtual std::string ARDOUR::Plugin::state_node_name ( ) const
pure virtual

◆ unique_id()

virtual std::string ARDOUR::Plugin::unique_id ( ) const
pure virtual

◆ use_for_impulse_analysis()

void ARDOUR::Plugin::use_for_impulse_analysis ( )
inline

Definition at line 332 of file plugin.h.

◆ write_immediate_event()

bool ARDOUR::Plugin::write_immediate_event ( Evoral::EventType  event_type,
size_t  size,
const uint8_t *  buf 
)

Friends And Related Function Documentation

◆ PluginInsert

friend class PluginInsert
friend

Definition at line 386 of file plugin.h.

◆ PlugInsertBase

friend class PlugInsertBase
friend

Definition at line 387 of file plugin.h.

◆ RegionFxPlugin

friend class RegionFxPlugin
friend

Definition at line 388 of file plugin.h.

◆ Session

friend class Session
friend

Definition at line 389 of file plugin.h.

Member Data Documentation

◆ _cycles

uint32_t ARDOUR::Plugin::_cycles
protected

Definition at line 423 of file plugin.h.

◆ _engine

ARDOUR::AudioEngine& ARDOUR::Plugin::_engine
protected

Definition at line 420 of file plugin.h.

◆ _for_impulse_analysis

bool ARDOUR::Plugin::_for_impulse_analysis
protected

Definition at line 425 of file plugin.h.

◆ _have_pending_stop_events

bool ARDOUR::Plugin::_have_pending_stop_events
private

Definition at line 446 of file plugin.h.

◆ _have_presets

bool ARDOUR::Plugin::_have_presets
private

Definition at line 443 of file plugin.h.

◆ _immediate_events

MidiRingBuffer<samplepos_t> ARDOUR::Plugin::_immediate_events
private

Definition at line 450 of file plugin.h.

◆ _info

PluginInfoPtr ARDOUR::Plugin::_info
protected

Definition at line 422 of file plugin.h.

◆ _last_preset

PresetRecord ARDOUR::Plugin::_last_preset
private

Definition at line 447 of file plugin.h.

◆ _num

uint32_t ARDOUR::Plugin::_num
private

Definition at line 457 of file plugin.h.

◆ _owner

SessionObject* ARDOUR::Plugin::_owner
protected

Definition at line 424 of file plugin.h.

◆ _parameter_changed_since_last_preset

bool ARDOUR::Plugin::_parameter_changed_since_last_preset
private

Definition at line 448 of file plugin.h.

◆ _pending_stop_events

BufferSet ARDOUR::Plugin::_pending_stop_events
private

Definition at line 445 of file plugin.h.

◆ _pib

PlugInsertBase* ARDOUR::Plugin::_pib
private

Definition at line 456 of file plugin.h.

◆ _preset_connection

PBD::ScopedConnection ARDOUR::Plugin::_preset_connection
private

Definition at line 459 of file plugin.h.

◆ _presets

std::map<std::string, PresetRecord> ARDOUR::Plugin::_presets
protected

Definition at line 427 of file plugin.h.

◆ _resolve_midi

std::atomic<bool> ARDOUR::Plugin::_resolve_midi
private

Definition at line 451 of file plugin.h.

◆ _session

ARDOUR::Session& ARDOUR::Plugin::_session
protected

Definition at line 421 of file plugin.h.

◆ _tracker

MidiNoteTracker ARDOUR::Plugin::_tracker
private

Definition at line 444 of file plugin.h.

◆ BankPatchChange

PBD::Signal<void(uint8_t)> ARDOUR::Plugin::BankPatchChange

Definition at line 226 of file plugin.h.

◆ EndTouch

PBD::Signal<void(uint32_t)> ARDOUR::Plugin::EndTouch

Definition at line 383 of file plugin.h.

◆ ParameterChangedExternally

PBD::Signal<void(uint32_t, float)> ARDOUR::Plugin::ParameterChangedExternally

Emitted when a parameter is altered by something outside of our control, most typically a Plugin GUI/editor

Definition at line 315 of file plugin.h.

◆ PresetAdded

PBD::Signal<void()> ARDOUR::Plugin::PresetAdded

Emitted when a preset is added or removed, respectively

Definition at line 292 of file plugin.h.

◆ PresetDirty

PBD::Signal<void()> ARDOUR::Plugin::PresetDirty

Emitted when a parameter is altered in a way that may have changed the settings with respect to any loaded preset.

Definition at line 304 of file plugin.h.

◆ PresetLoaded

PBD::Signal<void()> ARDOUR::Plugin::PresetLoaded

Emitted when a preset has been loaded

Definition at line 299 of file plugin.h.

◆ PresetPortSetValue

PBD::Signal<void(uint32_t, float)> ARDOUR::Plugin::PresetPortSetValue

Emitted for preset-load to set a control-port

Definition at line 307 of file plugin.h.

◆ PresetRemoved

PBD::Signal<void()> ARDOUR::Plugin::PresetRemoved

Definition at line 293 of file plugin.h.

◆ PresetsChanged

PBD::Signal<void(std::string, Plugin*, bool)> ARDOUR::Plugin::PresetsChanged
static

Emitted when any preset has been changed

Definition at line 296 of file plugin.h.

◆ PropertyChanged

PBD::Signal<void(uint32_t, Variant)> ARDOUR::Plugin::PropertyChanged

Emitted when a property is changed in the plugin.

Definition at line 380 of file plugin.h.

◆ QueueDraw

PBD::Signal<void()> ARDOUR::Plugin::QueueDraw

Definition at line 216 of file plugin.h.

◆ StartTouch

PBD::Signal<void(uint32_t)> ARDOUR::Plugin::StartTouch

Definition at line 382 of file plugin.h.

◆ UpdatedMidnam

PBD::Signal<void()> ARDOUR::Plugin::UpdatedMidnam

Definition at line 222 of file plugin.h.

◆ UpdateMidnam

PBD::Signal<void()> ARDOUR::Plugin::UpdateMidnam

Definition at line 221 of file plugin.h.


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