Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::PluginInsert Class Reference

#include <plugin_insert.h>

Inheritance diagram for ARDOUR::PluginInsert:
[legend]

Classes

struct  PIControl
 
class  PinMappings
 

Public Member Functions

 PluginInsert (Session &, Temporal::TimeDomainProvider const &tdp, std::shared_ptr< Plugin >=std::shared_ptr< Plugin >())
 
 ~PluginInsert ()
 
void drop_references ()
 
std::weak_ptr< PluginInsertweak_ptr ()
 
int set_state (const XMLNode &, int version)
 
void update_id (PBD::ID)
 
void set_owner (SessionObject *)
 
void set_state_dir (const std::string &d="")
 
void run (BufferSet &in, samplepos_t start_sample, samplepos_t end_sample, double speed, pframes_t nframes, bool)
 
void silence (samplecnt_t nframes, samplepos_t start_sample)
 
void activate ()
 
void deactivate ()
 
void flush ()
 
void enable (bool yn)
 
bool enabled () const
 processor enabled/bypass More...
 
bool bypassable () const
 enable is not automated or locked More...
 
bool reset_parameters_to_default ()
 
bool can_reset_all_parameters ()
 
bool write_immediate_event (Evoral::EventType event_type, size_t size, const uint8_t *buf)
 
void automation_run (samplepos_t, pframes_t, bool only_active=false)
 
bool find_next_event (Temporal::timepos_t const &, Temporal::timepos_t const &, Evoral::ControlEvent &, bool only_active=true) const
 
int set_block_size (pframes_t nframes)
 
ChanMapping input_map (uint32_t num) const
 
ChanMapping output_map (uint32_t num) const
 
ChanMapping thru_map () const
 
bool pre_seed (const ChanCount &, const ChanCount &, const ChanMapping &, const ChanMapping &, const ChanMapping &)
 
ChanMapping input_map () const
 combined (all instances) input map More...
 
ChanMapping no_sc_input_map () const
 combined (all instances) input map w/o sidechain sinks More...
 
ChanMapping output_map () const
 combined (all instances) output map More...
 
bool has_midi_bypass () const
 
bool has_midi_thru () const
 
bool inplace () const
 
bool is_channelstrip () const
 
UIElements ui_elements () const
 
void set_input_map (uint32_t, ChanMapping)
 
void set_output_map (uint32_t, ChanMapping)
 
void set_thru_map (ChanMapping)
 
bool reset_map (bool emit=true)
 
bool reset_sidechain_map ()
 
bool configured () const
 
ChanCount output_streams () const
 
ChanCount input_streams () const
 
ChanCount internal_streams () const
 
ChanCount internal_output_streams () const
 
ChanCount internal_input_streams () const
 
ChanCount natural_output_streams () const
 
ChanCount natural_input_streams () const
 
ChanCount sidechain_input_pins () const
 
ChanCount sidechain_input_ports () const
 
const ChanCountrequired_buffers () const
 
const ChanCountpreset_out () const
 
bool set_count (uint32_t num)
 
void set_sinks (const ChanCount &)
 
void set_outputs (const ChanCount &)
 
void set_strict_io (bool b)
 
void set_custom_cfg (bool b)
 
bool set_preset_out (const ChanCount &)
 
bool add_sidechain (uint32_t n_audio=1, uint32_t n_midi=0)
 
bool del_sidechain ()
 
void update_sidechain_name ()
 
std::shared_ptr< SideChainsidechain () const
 
uint32_t get_count () const
 
bool strict_io () const
 
bool custom_cfg () const
 
bool can_support_io_configuration (const ChanCount &in, ChanCount &out)
 
bool configure_io (ChanCount in, ChanCount out)
 
bool has_no_inputs () const
 
bool has_no_audio_inputs () const
 
bool is_instrument () const
 
bool has_automatables () const
 
bool has_output_presets (ChanCount in=ChanCount(DataType::MIDI, 1), ChanCount out=ChanCount(DataType::AUDIO, 2))
 
void realtime_handle_transport_stopped ()
 
void realtime_locate (bool)
 
void monitoring_changed ()
 
bool load_preset (Plugin::PresetRecord)
 
bool provides_stats () const
 
bool get_stats (PBD::microseconds_t &min, PBD::microseconds_t &max, double &avg, double &dev) const
 
void clear_stats ()
 
std::shared_ptr< Pluginplugin (uint32_t num=0) const
 
samplecnt_t plugin_latency () const
 
bool has_sidechain () const
 
std::shared_ptr< IOsidechain_input () const
 
PluginType type () const
 
std::shared_ptr< ReadOnlyControlcontrol_output (uint32_t) const
 
std::string describe_parameter (Evoral::Parameter param)
 
samplecnt_t signal_latency () const
 
std::shared_ptr< Pluginget_impulse_analysis_plugin ()
 
void collect_signal_for_analysis (samplecnt_t nframes)
 
bool strict_io_configured () const
 
bool splitting () const
 
void configured_io (ChanCount &in, ChanCount &out) const
 
- Public Member Functions inherited from ARDOUR::Processor
 Processor (Session &, const std::string &name, Temporal::TimeDomainProvider const &)
 
 Processor (const Processor &other)
 
virtual ~Processor ()
 
virtual std::string display_name () const
 
virtual bool display_to_user () const
 
virtual void set_display_to_user (bool)
 
bool active () const
 ardour hard bypass More...
 
virtual bool does_routing () const
 
bool get_next_ab_is_active () const
 
void set_next_ab_is_active (bool yn)
 
virtual void set_input_latency (samplecnt_t cnt)
 
samplecnt_t input_latency () const
 
virtual void set_output_latency (samplecnt_t cnt)
 
samplecnt_t output_latency () const
 
virtual void set_capture_offset (samplecnt_t cnt)
 
samplecnt_t capture_offset () const
 
virtual void set_playback_offset (samplecnt_t cnt)
 
samplecnt_t playback_offset () const
 
virtual bool requires_fixed_sized_buffers () const
 
virtual void set_loop (Location *loc)
 
XMLNodeget_state () const
 
int set_state (const XMLNode &, int version)
 
virtual void set_pre_fader (bool)
 
virtual bool get_pre_fader () const
 
ProcessorWindowProxywindow_proxy () const
 
void set_window_proxy (ProcessorWindowProxy *wp)
 
PluginPinWindowProxypinmgr_proxy () const
 
void set_pingmgr_proxy (PluginPinWindowProxy *wp)
 
SessionObjectowner () const
 
- Public Member Functions inherited from ARDOUR::SessionObject
 SessionObject (Session &session, const std::string &name)
 
Sessionsession () const
 
std::string name () const
 
virtual bool set_name (const std::string &str)
 
- Public Member Functions inherited from ARDOUR::SessionHandleRef
 SessionHandleRef (ARDOUR::Session &s)
 
virtual ~SessionHandleRef ()
 
- Public Member Functions inherited from PBD::ScopedConnectionList
 ScopedConnectionList ()
 
 ScopedConnectionList (const ScopedConnectionList &)=delete
 
ScopedConnectionListoperator= (const ScopedConnectionList &)=delete
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 
- 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 ()
 
- Public Member Functions inherited from ARDOUR::Automatable
 Automatable (Session &, Temporal::TimeDomainProvider const &)
 
 Automatable (const Automatable &other)
 
virtual ~Automatable ()
 
virtual void automatables (PBD::ControllableSet &) const
 
std::shared_ptr< Evoral::Controlcontrol_factory (const Evoral::Parameter &id)
 
std::shared_ptr< AutomationControlautomation_control (PBD::ID const &id) const
 
virtual std::shared_ptr< AutomationControlautomation_control_recurse (PBD::ID const &id) const
 
std::shared_ptr< AutomationControlautomation_control (const Evoral::Parameter &id)
 
std::shared_ptr< AutomationControlautomation_control (const Evoral::Parameter &id, bool create_if_missing)
 
std::shared_ptr< const AutomationControlautomation_control (const Evoral::Parameter &id) const
 
virtual void add_control (std::shared_ptr< Evoral::Control >)
 
void clear_controls ()
 
virtual void non_realtime_locate (samplepos_t now)
 
virtual void non_realtime_transport_stop (samplepos_t now, bool flush)
 
AutoState get_parameter_automation_state (Evoral::Parameter param)
 
virtual void set_parameter_automation_state (Evoral::Parameter param, AutoState)
 
void protect_automation ()
 
const std::set< Evoral::Parameter > & what_can_be_automated () const
 
std::vector< Evoral::Parameterall_automatable_params () const
 
void what_has_existing_automation (std::set< Evoral::Parameter > &) const
 
int set_automation_xml_state (const XMLNode &, Evoral::Parameter default_param)
 
XMLNodeget_automation_xml_state () const
 
void start_domain_bounce (Temporal::DomainBounceInfo &)
 
void finish_domain_bounce (Temporal::DomainBounceInfo &)
 
- Public Member Functions inherited from Evoral::ControlSet
 ControlSet ()
 
 ControlSet (const ControlSet &)
 
virtual ~ControlSet ()
 
std::shared_ptr< Controlcontrol (const Parameter &id, bool create_if_missing=false)
 
std::shared_ptr< const Controlcontrol (const Parameter &id) const
 
Controlscontrols ()
 
const Controlscontrols () const
 
virtual bool controls_empty () const
 
void what_has_data (std::set< Parameter > &) const
 
Glib::Threads::Mutex & control_lock () const
 
void start_domain_bounce (Temporal::DomainBounceInfo &)
 
void finish_domain_bounce (Temporal::DomainBounceInfo &)
 
- Public Member Functions inherited from Temporal::TimeDomainSwapper
virtual ~TimeDomainSwapper ()
 
- Public Member Functions inherited from ARDOUR::Slavable
 Slavable ()
 
virtual ~Slavable ()
 
XMLNodeget_state () const
 
int set_state (XMLNode const &, int)
 
virtual void assign (std::shared_ptr< VCA >)
 
void unassign (std::shared_ptr< VCA >)
 
std::vector< std::shared_ptr< VCA > > masters (VCAManager *) const
 
bool assigned_to (VCAManager *, std::shared_ptr< VCA >) const
 
- Public Member Functions inherited from Temporal::TimeDomainProvider
 TimeDomainProvider ()
 
 TimeDomainProvider (TimeDomain td)
 
 TimeDomainProvider (TimeDomain td, TimeDomainProvider const &p)
 
 TimeDomainProvider (TimeDomainProvider const &other)
 
 TimeDomainProvider (TimeDomainProvider const &parnt, bool)
 
virtual ~TimeDomainProvider ()
 
XMLNodeget_state () const
 
int set_state (const XMLNode &, int version)
 
TimeDomainProvideroperator= (TimeDomainProvider const &other)
 
TimeDomain time_domain () const
 
bool has_own_time_domain () const
 
void clear_time_domain ()
 
void set_time_domain (TimeDomain td)
 
TimeDomainProvider const * time_domain_parent () const
 
bool has_time_domain_parent () const
 
void clear_time_domain_parent ()
 
void set_time_domain_parent (TimeDomainProvider const &p)
 
virtual void time_domain_changed ()
 
- Public Member Functions inherited from ARDOUR::Latent
 Latent ()
 
 Latent (Latent const &)
 
virtual ~Latent ()
 
samplecnt_t effective_latency () const
 
samplecnt_t user_latency () const
 
void unset_user_latency ()
 
virtual void set_user_latency (samplecnt_t val)
 
- Public Member Functions inherited from ARDOUR::HasLatency
virtual ~HasLatency ()
 
- Public Member Functions inherited from ARDOUR::PlugInsertBase
virtual ~PlugInsertBase ()
 

Public Attributes

PBD::Signal< void(BufferSet *, BufferSet *)> AnalysisDataGathered
 
PBD::Signal< void()> PluginIoReConfigure
 
PBD::Signal< void()> PluginMapChanged
 
PBD::Signal< void()> PluginConfigChanged
 
- Public Attributes inherited from ARDOUR::Processor
PBD::Signal< void()> ActiveChanged
 
PBD::Signal< void()> BypassableChanged
 
PBD::Signal< void(ChanCount, ChanCount)> ConfigurationChanged
 
PBD::Signal< void()> ToggleUI
 
PBD::Signal< void()> ShowUI
 
PBD::Signal< void()> HideUI
 
- 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
 
- Public Attributes inherited from ARDOUR::Automatable
PBD::Signal< void()> AutomationStateChanged
 
- Public Attributes inherited from ARDOUR::Slavable
PBD::Signal< void(std::shared_ptr< VCA >, bool)> AssignmentChange
 
- Public Attributes inherited from Temporal::TimeDomainProvider
PBD::Signal< void()> TimeDomainChanged
 
- Public Attributes inherited from ARDOUR::Latent
PBD::Signal< void()> LatencyChanged
 

Static Public Attributes

static const std::string port_automation_node_name
 
- Static Public Attributes inherited from ARDOUR::Processor
static const std::string state_node_name
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 
- Static Public Attributes inherited from ARDOUR::Automatable
static bool skip_saving_automation
 
static const std::string xml_node_name
 
- Static Public Attributes inherited from ARDOUR::Slavable
static std::string xml_node_name
 
static PBD::Signal< void(VCAManager *)> Assign
 
- Static Public Attributes inherited from ARDOUR::Latent
static PBD::Signal< void()> DisableSwitchChanged
 

Protected Member Functions

XMLNodestate () const
 
- Protected Member Functions inherited from ARDOUR::Processor
virtual int set_state_2X (const XMLNode &, int version)
 
bool check_active ()
 
bool map_loop_range (samplepos_t &start, samplepos_t &end) const
 
- Protected Member Functions inherited from ARDOUR::SessionHandleRef
virtual void session_going_away ()
 
virtual void insanity_check ()
 
- 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 Member Functions inherited from ARDOUR::Automatable
void can_automate (Evoral::Parameter)
 
virtual void automation_list_automation_state_changed (Evoral::Parameter const &, AutoState)
 
int load_automation (const std::string &path)
 
int old_set_automation_state (const XMLNode &)
 
SlavableAutomationControlList slavables () const
 
- Protected Member Functions inherited from Evoral::ControlSet
virtual void control_list_marked_dirty ()
 
virtual void control_list_interpolation_changed (Parameter const &, ControlList::InterpolationStyle)
 
- Protected Member Functions inherited from Temporal::TimeDomainProvider
void listen ()
 
- Protected Member Functions inherited from ARDOUR::Latent
int set_state (const XMLNode &node, int version)
 
void add_state (XMLNode *) const
 
- Protected Member Functions inherited from ARDOUR::PlugInsertBase
bool parse_plugin_type (XMLNode const &, PluginType &, std::string &) const
 
std::shared_ptr< Pluginfind_and_load_plugin (Session &, XMLNode const &, PluginType &, std::string const &, bool &any_vst)
 
void set_control_ids (const XMLNode &, int version, bool by_value=false)
 
void preset_load_set_value (uint32_t, float)
 

Private Types

typedef std::vector< std::shared_ptr< Plugin > > Plugins
 
typedef std::map< uint32_t, std::shared_ptr< ReadOnlyControl > > CtrlOutMap
 

Private Member Functions

 PluginInsert (const PluginInsert &)
 
void parameter_changed_externally (uint32_t, float)
 
void set_parameter (Evoral::Parameter param, float val, sampleoffset_t)
 
float default_parameter_value (const Evoral::Parameter &param)
 
Match private_can_support_io_configuration (ChanCount const &, ChanCount &) const
 
Match internal_can_support_io_configuration (ChanCount const &, ChanCount &) const
 
Match automatic_can_support_io_configuration (ChanCount const &, ChanCount &) const
 
void automate_and_run (BufferSet &bufs, samplepos_t start, samplepos_t end, double speed, pframes_t nframes)
 
void connect_and_run (BufferSet &bufs, samplepos_t start, samplecnt_t end, double speed, pframes_t nframes, samplecnt_t offset, bool with_auto)
 
void bypass (BufferSet &bufs, pframes_t nframes)
 
void inplace_silence_unconnected (BufferSet &, const PinMappings &, samplecnt_t nframes, samplecnt_t offset) const
 
void create_automatable_parameters ()
 
void control_list_automation_state_changed (Evoral::Parameter, AutoState)
 
void set_parameter_state_2X (const XMLNode &node, int version)
 
void enable_changed ()
 
void bypassable_changed ()
 
bool sanitize_maps ()
 
bool check_inplace ()
 
void mapping_changed ()
 
void add_plugin (std::shared_ptr< Plugin >)
 
void plugin_removed (std::weak_ptr< Plugin >)
 
void add_sidechain_from_xml (const XMLNode &node, int version)
 
void start_touch (uint32_t param_id)
 
void end_touch (uint32_t param_id)
 
void latency_changed ()
 

Private Attributes

Plugins _plugins
 
std::shared_ptr< SideChain_sidechain
 
uint32_t _sc_playback_latency
 
uint32_t _sc_capture_latency
 
uint32_t _plugin_signal_latency
 
std::weak_ptr< Plugin_impulseAnalysisPlugin
 
samplecnt_t _signal_analysis_collect_nsamples
 
samplecnt_t _signal_analysis_collect_nsamples_max
 
BufferSet _signal_analysis_inputs
 
BufferSet _signal_analysis_outputs
 
FixedDelay _delaybuffers
 
ChanCount _configured_in
 
ChanCount _configured_internal
 
ChanCount _configured_out
 
ChanCount _custom_out
 
ChanCount _custom_sinks
 
ChanCount _preset_out
 
ChanCount _cached_sidechain_pins
 
ChanCount _required_buffers
 
bool _configured
 
bool _no_inplace
 
bool _strict_io
 
bool _custom_cfg
 
bool _maps_from_state
 
Match _match
 
PinMappings _in_map
 
PinMappings _out_map
 
ChanMapping _thru_map
 
bool _latency_changed
 
uint32_t _bypass_port
 
bool _inverted_bypass_enable
 
CtrlOutMap _control_outputs
 
PBD::TimingStats _timing_stats
 
std::atomic< int > _stat_reset
 
std::atomic< int > _flush
 

Additional Inherited Members

- Public Types inherited from Evoral::ControlSet
typedef std::map< Parameter, std::shared_ptr< Control > > Controls
 
- Public Types inherited from ARDOUR::PlugInsertBase
enum  UIElements : std::uint8_t {
  NoGUIToolbar = 0x00 , BypassEnable = 0x01 , PluginPreset = 0x02 , MIDIKeyboard = 0x04 ,
  AllUIElements = 0x0f
}
 
enum  MatchingMethod {
  Impossible , Delegate , NoInputs , ExactMatch ,
  Replicate , Split , Hide
}
 
- Static Public Member Functions inherited from ARDOUR::SessionObject
static void make_property_quarks ()
 
- Static Public Member Functions inherited from ARDOUR::Automatable
static void find_next_ac_event (std::shared_ptr< AutomationControl >, Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev)
 
static void find_prev_ac_event (std::shared_ptr< AutomationControl >, Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev)
 
- Static Public Member Functions inherited from ARDOUR::Latent
static void force_zero_latency (bool en)
 
static bool zero_latency ()
 
- Static Protected Member Functions inherited from ARDOUR::PlugInsertBase
static std::shared_ptr< Pluginplugin_factory (std::shared_ptr< Plugin >)
 
- Protected Attributes inherited from ARDOUR::Processor
int _pending_active
 
bool _active
 
bool _next_ab_is_active
 
bool _configured
 
ChanCount _configured_input
 
ChanCount _configured_output
 
bool _display_to_user
 
bool _pre_fader
 true if this processor is currently placed before the Amp, otherwise false More...
 
void * _ui_pointer
 
ProcessorWindowProxy_window_proxy
 
PluginPinWindowProxy_pinmgr_proxy
 
SessionObject_owner
 
samplecnt_t _input_latency
 
samplecnt_t _output_latency
 
samplecnt_t _capture_offset
 
samplecnt_t _playback_offset
 
Location_loop_location
 
- Protected Attributes inherited from ARDOUR::SessionObject
PBD::Property< std::string > _name
 
- Protected Attributes inherited from ARDOUR::SessionHandleRef
ARDOUR::Session_session
 
- 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::Automatable
Session_a_session
 
SerializedRCUManager< AutomationControlList_automated_controls
 
std::set< Evoral::Parameter_can_automate_list
 
samplepos_t _last_automation_snapshot
 
- Protected Attributes inherited from Evoral::ControlSet
Glib::Threads::Mutex _control_lock
 
Controls _controls
 
PBD::ScopedConnectionList _list_connections
 

Detailed Description

Plugin inserts: send data through a plugin

Definition at line 56 of file plugin_insert.h.

Member Typedef Documentation

◆ CtrlOutMap

typedef std::map<uint32_t, std::shared_ptr<ReadOnlyControl> > ARDOUR::PluginInsert::CtrlOutMap
private

Definition at line 387 of file plugin_insert.h.

◆ Plugins

typedef std::vector<std::shared_ptr<Plugin> > ARDOUR::PluginInsert::Plugins
private

Definition at line 284 of file plugin_insert.h.

Constructor & Destructor Documentation

◆ PluginInsert() [1/2]

ARDOUR::PluginInsert::PluginInsert ( Session ,
Temporal::TimeDomainProvider const &  tdp,
std::shared_ptr< Plugin = std::shared_ptr< Plugin >() 
)

◆ ~PluginInsert()

ARDOUR::PluginInsert::~PluginInsert ( )

◆ PluginInsert() [2/2]

ARDOUR::PluginInsert::PluginInsert ( const PluginInsert )
private

Member Function Documentation

◆ activate()

void ARDOUR::PluginInsert::activate ( )
virtual

Reimplemented from ARDOUR::Processor.

◆ add_plugin()

void ARDOUR::PluginInsert::add_plugin ( std::shared_ptr< Plugin )
private

◆ add_sidechain()

bool ARDOUR::PluginInsert::add_sidechain ( uint32_t  n_audio = 1,
uint32_t  n_midi = 0 
)

◆ add_sidechain_from_xml()

void ARDOUR::PluginInsert::add_sidechain_from_xml ( const XMLNode node,
int  version 
)
private

◆ automate_and_run()

void ARDOUR::PluginInsert::automate_and_run ( BufferSet bufs,
samplepos_t  start,
samplepos_t  end,
double  speed,
pframes_t  nframes 
)
private

◆ automatic_can_support_io_configuration()

Match ARDOUR::PluginInsert::automatic_can_support_io_configuration ( ChanCount const &  ,
ChanCount  
) const
private

◆ automation_run()

void ARDOUR::PluginInsert::automation_run ( samplepos_t  ,
pframes_t  ,
bool  only_active = false 
)
virtual

Reimplemented from ARDOUR::Automatable.

◆ bypass()

void ARDOUR::PluginInsert::bypass ( BufferSet bufs,
pframes_t  nframes 
)
private

◆ bypassable()

bool ARDOUR::PluginInsert::bypassable ( ) const
virtual

enable is not automated or locked

Reimplemented from ARDOUR::Processor.

◆ bypassable_changed()

void ARDOUR::PluginInsert::bypassable_changed ( )
private

◆ can_reset_all_parameters()

bool ARDOUR::PluginInsert::can_reset_all_parameters ( )
virtual

◆ can_support_io_configuration()

bool ARDOUR::PluginInsert::can_support_io_configuration ( const ChanCount in,
ChanCount out 
)
virtual

Implements ARDOUR::Processor.

◆ check_inplace()

bool ARDOUR::PluginInsert::check_inplace ( )
private

◆ clear_stats()

void ARDOUR::PluginInsert::clear_stats ( )
virtual

◆ collect_signal_for_analysis()

void ARDOUR::PluginInsert::collect_signal_for_analysis ( samplecnt_t  nframes)

◆ configure_io()

bool ARDOUR::PluginInsert::configure_io ( ChanCount  in,
ChanCount  out 
)
virtual

Reimplemented from ARDOUR::Processor.

◆ configured()

bool ARDOUR::PluginInsert::configured ( ) const
inline

Definition at line 134 of file plugin_insert.h.

◆ configured_io()

void ARDOUR::PluginInsert::configured_io ( ChanCount in,
ChanCount out 
) const
inline

Definition at line 262 of file plugin_insert.h.

◆ connect_and_run()

void ARDOUR::PluginInsert::connect_and_run ( BufferSet bufs,
samplepos_t  start,
samplecnt_t  end,
double  speed,
pframes_t  nframes,
samplecnt_t  offset,
bool  with_auto 
)
private

◆ control_list_automation_state_changed()

void ARDOUR::PluginInsert::control_list_automation_state_changed ( Evoral::Parameter  ,
AutoState   
)
private

◆ control_output()

std::shared_ptr<ReadOnlyControl> ARDOUR::PluginInsert::control_output ( uint32_t  ) const
virtual

◆ create_automatable_parameters()

void ARDOUR::PluginInsert::create_automatable_parameters ( )
private

◆ custom_cfg()

bool ARDOUR::PluginInsert::custom_cfg ( ) const
inline

Definition at line 183 of file plugin_insert.h.

◆ deactivate()

void ARDOUR::PluginInsert::deactivate ( )
virtual

Reimplemented from ARDOUR::Processor.

◆ default_parameter_value()

float ARDOUR::PluginInsert::default_parameter_value ( const Evoral::Parameter param)
private

◆ del_sidechain()

bool ARDOUR::PluginInsert::del_sidechain ( )

◆ describe_parameter()

std::string ARDOUR::PluginInsert::describe_parameter ( Evoral::Parameter  param)
virtual

◆ drop_references()

void ARDOUR::PluginInsert::drop_references ( )
virtual

Reimplemented from PBD::Destructible.

◆ enable()

void ARDOUR::PluginInsert::enable ( bool  yn)
virtual

Reimplemented from ARDOUR::Processor.

◆ enable_changed()

void ARDOUR::PluginInsert::enable_changed ( )
private

◆ enabled()

bool ARDOUR::PluginInsert::enabled ( ) const
virtual

processor enabled/bypass

Reimplemented from ARDOUR::Processor.

◆ end_touch()

void ARDOUR::PluginInsert::end_touch ( uint32_t  param_id)
private

◆ find_next_event()

bool ARDOUR::PluginInsert::find_next_event ( Temporal::timepos_t const &  ,
Temporal::timepos_t const &  ,
Evoral::ControlEvent ,
bool  only_active = true 
) const
virtual

Reimplemented from ARDOUR::Automatable.

◆ flush()

void ARDOUR::PluginInsert::flush ( )
virtual

Reimplemented from ARDOUR::Processor.

◆ get_count()

uint32_t ARDOUR::PluginInsert::get_count ( ) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 181 of file plugin_insert.h.

◆ get_impulse_analysis_plugin()

std::shared_ptr<Plugin> ARDOUR::PluginInsert::get_impulse_analysis_plugin ( )

◆ get_stats()

bool ARDOUR::PluginInsert::get_stats ( PBD::microseconds_t min,
PBD::microseconds_t max,
double &  avg,
double &  dev 
) const
virtual

◆ has_automatables()

bool ARDOUR::PluginInsert::has_automatables ( ) const

◆ has_midi_bypass()

bool ARDOUR::PluginInsert::has_midi_bypass ( ) const

◆ has_midi_thru()

bool ARDOUR::PluginInsert::has_midi_thru ( ) const

◆ has_no_audio_inputs()

bool ARDOUR::PluginInsert::has_no_audio_inputs ( ) const

◆ has_no_inputs()

bool ARDOUR::PluginInsert::has_no_inputs ( ) const

◆ has_output_presets()

bool ARDOUR::PluginInsert::has_output_presets ( ChanCount  in = ChanCount(DataType::MIDI, 1),
ChanCount  out = ChanCount(DataType::AUDIO, 2) 
)

◆ has_sidechain()

bool ARDOUR::PluginInsert::has_sidechain ( ) const
inline

Definition at line 231 of file plugin_insert.h.

◆ inplace()

bool ARDOUR::PluginInsert::inplace ( ) const
inline

Definition at line 123 of file plugin_insert.h.

◆ inplace_silence_unconnected()

void ARDOUR::PluginInsert::inplace_silence_unconnected ( BufferSet ,
const PinMappings ,
samplecnt_t  nframes,
samplecnt_t  offset 
) const
private

◆ input_map() [1/2]

ChanMapping ARDOUR::PluginInsert::input_map ( ) const

combined (all instances) input map

◆ input_map() [2/2]

ChanMapping ARDOUR::PluginInsert::input_map ( uint32_t  num) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 96 of file plugin_insert.h.

◆ input_streams()

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

Reimplemented from ARDOUR::Processor.

◆ internal_can_support_io_configuration()

Match ARDOUR::PluginInsert::internal_can_support_io_configuration ( ChanCount const &  ,
ChanCount  
) const
private

◆ internal_input_streams()

ChanCount ARDOUR::PluginInsert::internal_input_streams ( ) const

◆ internal_output_streams()

ChanCount ARDOUR::PluginInsert::internal_output_streams ( ) const

◆ internal_streams()

ChanCount ARDOUR::PluginInsert::internal_streams ( ) const

◆ is_channelstrip()

bool ARDOUR::PluginInsert::is_channelstrip ( ) const

◆ is_instrument()

bool ARDOUR::PluginInsert::is_instrument ( ) const

◆ latency_changed()

void ARDOUR::PluginInsert::latency_changed ( )
private

◆ load_preset()

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

◆ mapping_changed()

void ARDOUR::PluginInsert::mapping_changed ( )
private

◆ monitoring_changed()

void ARDOUR::PluginInsert::monitoring_changed ( )
virtual

Reimplemented from ARDOUR::Processor.

◆ natural_input_streams()

ChanCount ARDOUR::PluginInsert::natural_input_streams ( ) const

◆ natural_output_streams()

ChanCount ARDOUR::PluginInsert::natural_output_streams ( ) const

◆ no_sc_input_map()

ChanMapping ARDOUR::PluginInsert::no_sc_input_map ( ) const

combined (all instances) input map w/o sidechain sinks

◆ output_map() [1/2]

ChanMapping ARDOUR::PluginInsert::output_map ( ) const

combined (all instances) output map

◆ output_map() [2/2]

ChanMapping ARDOUR::PluginInsert::output_map ( uint32_t  num) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 104 of file plugin_insert.h.

◆ output_streams()

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

Reimplemented from ARDOUR::Processor.

◆ parameter_changed_externally()

void ARDOUR::PluginInsert::parameter_changed_externally ( uint32_t  ,
float   
)
private

◆ plugin()

std::shared_ptr<Plugin> ARDOUR::PluginInsert::plugin ( uint32_t  num = 0) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 221 of file plugin_insert.h.

◆ plugin_latency()

samplecnt_t ARDOUR::PluginInsert::plugin_latency ( ) const

◆ plugin_removed()

void ARDOUR::PluginInsert::plugin_removed ( std::weak_ptr< Plugin )
private

◆ pre_seed()

bool ARDOUR::PluginInsert::pre_seed ( const ChanCount ,
const ChanCount ,
const ChanMapping ,
const ChanMapping ,
const ChanMapping  
)

◆ preset_out()

const ChanCount& ARDOUR::PluginInsert::preset_out ( ) const
inline

Definition at line 163 of file plugin_insert.h.

◆ private_can_support_io_configuration()

Match ARDOUR::PluginInsert::private_can_support_io_configuration ( ChanCount const &  ,
ChanCount  
) const
private

◆ provides_stats()

bool ARDOUR::PluginInsert::provides_stats ( ) const
virtual

◆ realtime_handle_transport_stopped()

void ARDOUR::PluginInsert::realtime_handle_transport_stopped ( )
virtual

Reimplemented from ARDOUR::Processor.

◆ realtime_locate()

void ARDOUR::PluginInsert::realtime_locate ( bool  )
virtual

Reimplemented from ARDOUR::Processor.

◆ required_buffers()

const ChanCount& ARDOUR::PluginInsert::required_buffers ( ) const
inline

Definition at line 162 of file plugin_insert.h.

◆ reset_map()

bool ARDOUR::PluginInsert::reset_map ( bool  emit = true)

◆ reset_parameters_to_default()

bool ARDOUR::PluginInsert::reset_parameters_to_default ( )
virtual

◆ reset_sidechain_map()

bool ARDOUR::PluginInsert::reset_sidechain_map ( )

◆ run()

void ARDOUR::PluginInsert::run ( BufferSet bufs,
samplepos_t  start_sample,
samplepos_t  end_sample,
double  speed,
pframes_t  nframes,
bool  result_required 
)
virtual

The main process function for processors

Parameters
bufsbufferset of data to process in-place
start_sampleabsolute timeline position in audio-samples to commence processing (latency compensated)
end_sampleabsolute timeline position in audio-samples, usually start_sample +/- nframes
speedtransport speed. usually -1, 0, +1
nframesnumber of audio samples to process
result_requiredtrue if, on return from this method, bufs is required to contain valid data; if false, the method need not bother writing to bufs if it doesn't want to.

Reimplemented from ARDOUR::Processor.

◆ sanitize_maps()

bool ARDOUR::PluginInsert::sanitize_maps ( )
private

◆ set_block_size()

int ARDOUR::PluginInsert::set_block_size ( pframes_t  nframes)
virtual

Reimplemented from ARDOUR::Processor.

◆ set_count()

bool ARDOUR::PluginInsert::set_count ( uint32_t  num)

◆ set_custom_cfg()

void ARDOUR::PluginInsert::set_custom_cfg ( bool  b)

◆ set_input_map()

void ARDOUR::PluginInsert::set_input_map ( uint32_t  ,
ChanMapping   
)

◆ set_output_map()

void ARDOUR::PluginInsert::set_output_map ( uint32_t  ,
ChanMapping   
)

◆ set_outputs()

void ARDOUR::PluginInsert::set_outputs ( const ChanCount )

◆ set_owner()

void ARDOUR::PluginInsert::set_owner ( SessionObject )
virtual

Reimplemented from ARDOUR::Processor.

◆ set_parameter()

void ARDOUR::PluginInsert::set_parameter ( Evoral::Parameter  param,
float  val,
sampleoffset_t   
)
private

◆ set_parameter_state_2X()

void ARDOUR::PluginInsert::set_parameter_state_2X ( const XMLNode node,
int  version 
)
private

◆ set_preset_out()

bool ARDOUR::PluginInsert::set_preset_out ( const ChanCount )

◆ set_sinks()

void ARDOUR::PluginInsert::set_sinks ( const ChanCount )

◆ set_state()

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

Implements PBD::Stateful.

◆ set_state_dir()

void ARDOUR::PluginInsert::set_state_dir ( const std::string &  d = "")

◆ set_strict_io()

void ARDOUR::PluginInsert::set_strict_io ( bool  b)

◆ set_thru_map()

void ARDOUR::PluginInsert::set_thru_map ( ChanMapping  )

◆ sidechain()

std::shared_ptr<SideChain> ARDOUR::PluginInsert::sidechain ( ) const
inline

Definition at line 178 of file plugin_insert.h.

◆ sidechain_input()

std::shared_ptr<IO> ARDOUR::PluginInsert::sidechain_input ( ) const
inline

Definition at line 235 of file plugin_insert.h.

◆ sidechain_input_pins()

ChanCount ARDOUR::PluginInsert::sidechain_input_pins ( ) const

plugin ports marked as sidechain

◆ sidechain_input_ports()

ChanCount ARDOUR::PluginInsert::sidechain_input_ports ( ) const
inline

Plugin-Insert IO sidechain ports

Definition at line 154 of file plugin_insert.h.

◆ signal_latency()

samplecnt_t ARDOUR::PluginInsert::signal_latency ( ) const
virtual

Reimplemented from ARDOUR::Processor.

◆ silence()

void ARDOUR::PluginInsert::silence ( samplecnt_t  nframes,
samplepos_t  start_sample 
)
virtual

Reimplemented from ARDOUR::Processor.

◆ splitting()

bool ARDOUR::PluginInsert::splitting ( ) const
inline

Definition at line 258 of file plugin_insert.h.

◆ start_touch()

void ARDOUR::PluginInsert::start_touch ( uint32_t  param_id)
private

◆ state()

XMLNode& ARDOUR::PluginInsert::state ( ) const
protectedvirtual

Reimplemented from ARDOUR::Processor.

◆ strict_io()

bool ARDOUR::PluginInsert::strict_io ( ) const
inline

Definition at line 182 of file plugin_insert.h.

◆ strict_io_configured()

bool ARDOUR::PluginInsert::strict_io_configured ( ) const
inline

Definition at line 254 of file plugin_insert.h.

◆ thru_map()

ChanMapping ARDOUR::PluginInsert::thru_map ( ) const
inline

Definition at line 112 of file plugin_insert.h.

◆ type()

PluginType ARDOUR::PluginInsert::type ( ) const
virtual

◆ ui_elements()

UIElements ARDOUR::PluginInsert::ui_elements ( ) const
virtual

◆ update_id()

void ARDOUR::PluginInsert::update_id ( PBD::ID  )

◆ update_sidechain_name()

void ARDOUR::PluginInsert::update_sidechain_name ( )

◆ weak_ptr()

std::weak_ptr<PluginInsert> ARDOUR::PluginInsert::weak_ptr ( )
inline

Definition at line 64 of file plugin_insert.h.

◆ write_immediate_event()

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

Member Data Documentation

◆ _bypass_port

uint32_t ARDOUR::PluginInsert::_bypass_port
private

Definition at line 384 of file plugin_insert.h.

◆ _cached_sidechain_pins

ChanCount ARDOUR::PluginInsert::_cached_sidechain_pins
private

Definition at line 308 of file plugin_insert.h.

◆ _configured

bool ARDOUR::PluginInsert::_configured
private

Definition at line 311 of file plugin_insert.h.

◆ _configured_in

ChanCount ARDOUR::PluginInsert::_configured_in
private

Definition at line 302 of file plugin_insert.h.

◆ _configured_internal

ChanCount ARDOUR::PluginInsert::_configured_internal
private

Definition at line 303 of file plugin_insert.h.

◆ _configured_out

ChanCount ARDOUR::PluginInsert::_configured_out
private

Definition at line 304 of file plugin_insert.h.

◆ _control_outputs

CtrlOutMap ARDOUR::PluginInsert::_control_outputs
private

Definition at line 388 of file plugin_insert.h.

◆ _custom_cfg

bool ARDOUR::PluginInsert::_custom_cfg
private

Definition at line 314 of file plugin_insert.h.

◆ _custom_out

ChanCount ARDOUR::PluginInsert::_custom_out
private

Definition at line 305 of file plugin_insert.h.

◆ _custom_sinks

ChanCount ARDOUR::PluginInsert::_custom_sinks
private

Definition at line 306 of file plugin_insert.h.

◆ _delaybuffers

FixedDelay ARDOUR::PluginInsert::_delaybuffers
private

Definition at line 300 of file plugin_insert.h.

◆ _flush

std::atomic<int> ARDOUR::PluginInsert::_flush
private

Definition at line 392 of file plugin_insert.h.

◆ _impulseAnalysisPlugin

std::weak_ptr<Plugin> ARDOUR::PluginInsert::_impulseAnalysisPlugin
private

Definition at line 292 of file plugin_insert.h.

◆ _in_map

PinMappings ARDOUR::PluginInsert::_in_map
private

Definition at line 354 of file plugin_insert.h.

◆ _inverted_bypass_enable

bool ARDOUR::PluginInsert::_inverted_bypass_enable
private

Definition at line 385 of file plugin_insert.h.

◆ _latency_changed

bool ARDOUR::PluginInsert::_latency_changed
private

Definition at line 383 of file plugin_insert.h.

◆ _maps_from_state

bool ARDOUR::PluginInsert::_maps_from_state
private

Definition at line 315 of file plugin_insert.h.

◆ _match

Match ARDOUR::PluginInsert::_match
private

details of the match currently being used

Definition at line 322 of file plugin_insert.h.

◆ _no_inplace

bool ARDOUR::PluginInsert::_no_inplace
private

Definition at line 312 of file plugin_insert.h.

◆ _out_map

PinMappings ARDOUR::PluginInsert::_out_map
private

Definition at line 355 of file plugin_insert.h.

◆ _plugin_signal_latency

uint32_t ARDOUR::PluginInsert::_plugin_signal_latency
private

Definition at line 290 of file plugin_insert.h.

◆ _plugins

Plugins ARDOUR::PluginInsert::_plugins
private

Definition at line 285 of file plugin_insert.h.

◆ _preset_out

ChanCount ARDOUR::PluginInsert::_preset_out
private

Definition at line 307 of file plugin_insert.h.

◆ _required_buffers

ChanCount ARDOUR::PluginInsert::_required_buffers
private

Definition at line 309 of file plugin_insert.h.

◆ _sc_capture_latency

uint32_t ARDOUR::PluginInsert::_sc_capture_latency
private

Definition at line 289 of file plugin_insert.h.

◆ _sc_playback_latency

uint32_t ARDOUR::PluginInsert::_sc_playback_latency
private

Definition at line 288 of file plugin_insert.h.

◆ _sidechain

std::shared_ptr<SideChain> ARDOUR::PluginInsert::_sidechain
private

Definition at line 287 of file plugin_insert.h.

◆ _signal_analysis_collect_nsamples

samplecnt_t ARDOUR::PluginInsert::_signal_analysis_collect_nsamples
private

Definition at line 294 of file plugin_insert.h.

◆ _signal_analysis_collect_nsamples_max

samplecnt_t ARDOUR::PluginInsert::_signal_analysis_collect_nsamples_max
private

Definition at line 295 of file plugin_insert.h.

◆ _signal_analysis_inputs

BufferSet ARDOUR::PluginInsert::_signal_analysis_inputs
private

Definition at line 297 of file plugin_insert.h.

◆ _signal_analysis_outputs

BufferSet ARDOUR::PluginInsert::_signal_analysis_outputs
private

Definition at line 298 of file plugin_insert.h.

◆ _stat_reset

std::atomic<int> ARDOUR::PluginInsert::_stat_reset
private

Definition at line 391 of file plugin_insert.h.

◆ _strict_io

bool ARDOUR::PluginInsert::_strict_io
private

Definition at line 313 of file plugin_insert.h.

◆ _thru_map

ChanMapping ARDOUR::PluginInsert::_thru_map
private

Definition at line 356 of file plugin_insert.h.

◆ _timing_stats

PBD::TimingStats ARDOUR::PluginInsert::_timing_stats
private

Definition at line 390 of file plugin_insert.h.

◆ AnalysisDataGathered

PBD::Signal<void(BufferSet*, BufferSet*)> ARDOUR::PluginInsert::AnalysisDataGathered

Definition at line 267 of file plugin_insert.h.

◆ PluginConfigChanged

PBD::Signal<void()> ARDOUR::PluginInsert::PluginConfigChanged

Definition at line 270 of file plugin_insert.h.

◆ PluginIoReConfigure

PBD::Signal<void()> ARDOUR::PluginInsert::PluginIoReConfigure

Definition at line 268 of file plugin_insert.h.

◆ PluginMapChanged

PBD::Signal<void()> ARDOUR::PluginInsert::PluginMapChanged

Definition at line 269 of file plugin_insert.h.

◆ port_automation_node_name

const std::string ARDOUR::PluginInsert::port_automation_node_name
static

Definition at line 68 of file plugin_insert.h.


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