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

#include <io_plug.h>

Inheritance diagram for ARDOUR::IOPlug:
[legend]

Public Member Functions

 IOPlug (Session &, std::shared_ptr< Plugin >=std::shared_ptr< Plugin >(), bool pre=true)
 
virtual ~IOPlug ()
 
bool set_name (std::string const &)
 
std::string io_name (std::string const &name="") const
 
XMLNodeget_state (void) const
 
int set_state (const XMLNode &, int version)
 
void connect_and_run (samplepos_t, pframes_t)
 
int set_block_size (pframes_t)
 
void set_public_latency (bool)
 
bool ensure_io ()
 
bool is_pre () const
 
std::shared_ptr< IOinput () const
 
std::shared_ptr< IOoutput () const
 
Gtkmm2ext::WindowProxywindow_proxy () const
 
void set_window_proxy (Gtkmm2ext::WindowProxy *wp)
 
PortManager::AudioInputPorts audio_input_ports () const
 
PortManager::MIDIInputPorts midi_input_ports () const
 
void reset_input_meters ()
 
samplecnt_t signal_latency () const
 
uint32_t get_count () const
 
std::shared_ptr< Pluginplugin (uint32_t num=0) const
 
PluginType type () const
 
UIElements ui_elements () const
 
bool write_immediate_event (Evoral::EventType event_type, size_t size, const uint8_t *buf)
 
bool load_preset (Plugin::PresetRecord)
 
std::shared_ptr< ReadOnlyControlcontrol_output (uint32_t) const
 
bool reset_parameters_to_default ()
 
bool can_reset_all_parameters ()
 
virtual bool provides_stats () const
 
virtual bool get_stats (PBD::microseconds_t &, PBD::microseconds_t &, double &, double &) const
 
virtual void clear_stats ()
 
ChanMapping input_map (uint32_t num) const
 
ChanMapping output_map (uint32_t num) const
 
std::shared_ptr< Evoral::Controlcontrol_factory (const Evoral::Parameter &id)
 
std::string graph_node_name () const
 
bool direct_feeds_according_to_reality (std::shared_ptr< GraphNode >, bool *via_send_only=0)
 
void process ()
 
- Public Member Functions inherited from ARDOUR::SessionObject
 SessionObject (Session &session, const std::string &name)
 
Sessionsession () const
 
std::string name () const
 
- 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 ()
 
virtual void drop_references ()
 
- Public Member Functions inherited from ARDOUR::PlugInsertBase
virtual ~PlugInsertBase ()
 
- 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 void add_control (std::shared_ptr< Control >)
 
virtual bool controls_empty () const
 
virtual void clear_controls ()
 
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::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::GraphNode
 GraphNode (std::shared_ptr< Graph > Graph)
 
void prep (GraphChain const *)
 
void run (GraphChain const *)
 
- Public Member Functions inherited from ARDOUR::ProcessNode
virtual ~ProcessNode ()
 
- Public Member Functions inherited from ARDOUR::GraphActivision
 GraphActivision ()
 
virtual ~GraphActivision ()
 
node_set_t const & activation_set (GraphChain const *const g) const
 
int init_refcount (GraphChain const *const g) const
 
void flush_graph_activision_rcu ()
 

Protected Member Functions

std::string describe_parameter (Evoral::Parameter)
 
- 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::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)
 
- 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 ARDOUR::Latent
int set_state (const XMLNode &node, int version)
 
void add_state (XMLNode *) const
 
- Protected Member Functions inherited from ARDOUR::GraphNode
void trigger ()
 

Private Types

typedef std::map< uint32_t, std::shared_ptr< ReadOnlyControl > > CtrlOutMap
 

Private Member Functions

 IOPlug (IOPlug const &)
 
std::string ensure_io_name (std::string) const
 
void create_parameters ()
 
void parameter_changed_externally (uint32_t, float)
 
void setup ()
 

Private Attributes

ChanCount _n_in
 
ChanCount _n_out
 
PluginPtr _plugin
 
bool _pre
 
uint32_t _plugin_signal_latency
 
CtrlOutMap _control_outputs
 
BufferSet _bufs
 
std::shared_ptr< IO_input
 
std::shared_ptr< IO_output
 
bool _configuring_io
 
PortManager::AudioInputPorts _audio_input_ports
 
PortManager::MIDIInputPorts _midi_input_ports
 
Gtkmm2ext::WindowProxy_window_proxy
 
PBD::TimingStats _timing_stats
 
std::atomic< int > _stat_reset
 
std::atomic< int > _reset_meters
 

Additional Inherited Members

- 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
}
 
- Public Types inherited from Evoral::ControlSet
typedef std::map< Parameter, std::shared_ptr< Control > > Controls
 
- Public Types inherited from ARDOUR::GraphActivision
typedef std::map< GraphChain const *, node_set_tActivationMap
 
typedef std::map< GraphChain const *, int > RefCntMap
 
- Static Public Member Functions inherited from ARDOUR::SessionObject
static void make_property_quarks ()
 
- Static Public Member Functions inherited from ARDOUR::Latent
static void force_zero_latency (bool en)
 
static bool zero_latency ()
 
- 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::Latent
PBD::Signal< void()> LatencyChanged
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 
- Static Public Attributes inherited from ARDOUR::Latent
static PBD::Signal< void()> DisableSwitchChanged
 
- Static Protected Member Functions inherited from ARDOUR::PlugInsertBase
static std::shared_ptr< Pluginplugin_factory (std::shared_ptr< Plugin >)
 
- 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 Evoral::ControlSet
Glib::Threads::Mutex _control_lock
 
Controls _controls
 
PBD::ScopedConnectionList _list_connections
 
- Protected Attributes inherited from ARDOUR::GraphNode
std::shared_ptr< Graph_graph
 
- Protected Attributes inherited from ARDOUR::GraphActivision
SerializedRCUManager< ActivationMap_activation_set
 
SerializedRCUManager< RefCntMap_init_refcount
 

Detailed Description

Definition at line 45 of file io_plug.h.

Member Typedef Documentation

◆ CtrlOutMap

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

Definition at line 130 of file io_plug.h.

Constructor & Destructor Documentation

◆ IOPlug() [1/2]

ARDOUR::IOPlug::IOPlug ( Session ,
std::shared_ptr< Plugin = std::shared_ptr< Plugin >(),
bool  pre = true 
)

◆ ~IOPlug()

virtual ARDOUR::IOPlug::~IOPlug ( )
virtual

◆ IOPlug() [2/2]

ARDOUR::IOPlug::IOPlug ( IOPlug const &  )
private

Member Function Documentation

◆ audio_input_ports()

PortManager::AudioInputPorts ARDOUR::IOPlug::audio_input_ports ( ) const
inline

Definition at line 71 of file io_plug.h.

◆ can_reset_all_parameters()

bool ARDOUR::IOPlug::can_reset_all_parameters ( )
virtual

◆ clear_stats()

virtual void ARDOUR::IOPlug::clear_stats ( )
virtual

◆ connect_and_run()

void ARDOUR::IOPlug::connect_and_run ( samplepos_t  ,
pframes_t   
)

◆ control_factory()

std::shared_ptr<Evoral::Control> ARDOUR::IOPlug::control_factory ( const Evoral::Parameter id)
virtual

Implements Evoral::ControlSet.

◆ control_output()

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

◆ create_parameters()

void ARDOUR::IOPlug::create_parameters ( )
private

◆ describe_parameter()

std::string ARDOUR::IOPlug::describe_parameter ( Evoral::Parameter  )
protectedvirtual

◆ direct_feeds_according_to_reality()

bool ARDOUR::IOPlug::direct_feeds_according_to_reality ( std::shared_ptr< GraphNode ,
bool *  via_send_only = 0 
)
virtual

Implements ARDOUR::GraphNode.

◆ ensure_io()

bool ARDOUR::IOPlug::ensure_io ( )

◆ ensure_io_name()

std::string ARDOUR::IOPlug::ensure_io_name ( std::string  ) const
private

◆ get_count()

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

Implements ARDOUR::PlugInsertBase.

Definition at line 80 of file io_plug.h.

◆ get_state()

XMLNode& ARDOUR::IOPlug::get_state ( void  ) const
virtual

Implements PBD::Stateful.

◆ get_stats()

virtual bool ARDOUR::IOPlug::get_stats ( PBD::microseconds_t ,
PBD::microseconds_t ,
double &  ,
double &   
) const
virtual

◆ graph_node_name()

std::string ARDOUR::IOPlug::graph_node_name ( ) const
inlinevirtual

Implements ARDOUR::GraphNode.

Definition at line 105 of file io_plug.h.

◆ input()

std::shared_ptr<IO> ARDOUR::IOPlug::input ( ) const
inline

Definition at line 65 of file io_plug.h.

◆ input_map()

ChanMapping ARDOUR::IOPlug::input_map ( uint32_t  num) const
virtual

◆ io_name()

std::string ARDOUR::IOPlug::io_name ( std::string const &  name = "") const

◆ is_pre()

bool ARDOUR::IOPlug::is_pre ( ) const
inline

Definition at line 63 of file io_plug.h.

◆ load_preset()

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

◆ midi_input_ports()

PortManager::MIDIInputPorts ARDOUR::IOPlug::midi_input_ports ( ) const
inline

Definition at line 72 of file io_plug.h.

◆ output()

std::shared_ptr<IO> ARDOUR::IOPlug::output ( ) const
inline

Definition at line 66 of file io_plug.h.

◆ output_map()

ChanMapping ARDOUR::IOPlug::output_map ( uint32_t  num) const
virtual

◆ parameter_changed_externally()

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

◆ plugin()

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

Implements ARDOUR::PlugInsertBase.

Definition at line 81 of file io_plug.h.

◆ process()

void ARDOUR::IOPlug::process ( )
virtual

Implements ARDOUR::GraphNode.

◆ provides_stats()

virtual bool ARDOUR::IOPlug::provides_stats ( ) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 94 of file io_plug.h.

◆ reset_input_meters()

void ARDOUR::IOPlug::reset_input_meters ( )

◆ reset_parameters_to_default()

bool ARDOUR::IOPlug::reset_parameters_to_default ( )
virtual

◆ set_block_size()

int ARDOUR::IOPlug::set_block_size ( pframes_t  )

◆ set_name()

bool ARDOUR::IOPlug::set_name ( std::string const &  )
virtual

Reimplemented from ARDOUR::SessionObject.

◆ set_public_latency()

void ARDOUR::IOPlug::set_public_latency ( bool  )

◆ set_state()

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

Implements PBD::Stateful.

◆ set_window_proxy()

void ARDOUR::IOPlug::set_window_proxy ( Gtkmm2ext::WindowProxy wp)
inline

Definition at line 69 of file io_plug.h.

◆ setup()

void ARDOUR::IOPlug::setup ( )
private

◆ signal_latency()

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

Implements ARDOUR::HasLatency.

◆ type()

PluginType ARDOUR::IOPlug::type ( ) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 82 of file io_plug.h.

◆ ui_elements()

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

◆ window_proxy()

Gtkmm2ext::WindowProxy* ARDOUR::IOPlug::window_proxy ( ) const
inline

Definition at line 68 of file io_plug.h.

◆ write_immediate_event()

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

Member Data Documentation

◆ _audio_input_ports

PortManager::AudioInputPorts ARDOUR::IOPlug::_audio_input_ports
private

Definition at line 138 of file io_plug.h.

◆ _bufs

BufferSet ARDOUR::IOPlug::_bufs
private

Definition at line 133 of file io_plug.h.

◆ _configuring_io

bool ARDOUR::IOPlug::_configuring_io
private

Definition at line 136 of file io_plug.h.

◆ _control_outputs

CtrlOutMap ARDOUR::IOPlug::_control_outputs
private

Definition at line 131 of file io_plug.h.

◆ _input

std::shared_ptr<IO> ARDOUR::IOPlug::_input
private

Definition at line 134 of file io_plug.h.

◆ _midi_input_ports

PortManager::MIDIInputPorts ARDOUR::IOPlug::_midi_input_ports
private

Definition at line 139 of file io_plug.h.

◆ _n_in

ChanCount ARDOUR::IOPlug::_n_in
private

Definition at line 124 of file io_plug.h.

◆ _n_out

ChanCount ARDOUR::IOPlug::_n_out
private

Definition at line 125 of file io_plug.h.

◆ _output

std::shared_ptr<IO> ARDOUR::IOPlug::_output
private

Definition at line 135 of file io_plug.h.

◆ _plugin

PluginPtr ARDOUR::IOPlug::_plugin
private

Definition at line 126 of file io_plug.h.

◆ _plugin_signal_latency

uint32_t ARDOUR::IOPlug::_plugin_signal_latency
private

Definition at line 128 of file io_plug.h.

◆ _pre

bool ARDOUR::IOPlug::_pre
private

Definition at line 127 of file io_plug.h.

◆ _reset_meters

std::atomic<int> ARDOUR::IOPlug::_reset_meters
private

Definition at line 145 of file io_plug.h.

◆ _stat_reset

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

Definition at line 144 of file io_plug.h.

◆ _timing_stats

PBD::TimingStats ARDOUR::IOPlug::_timing_stats
private

Definition at line 143 of file io_plug.h.

◆ _window_proxy

Gtkmm2ext::WindowProxy* ARDOUR::IOPlug::_window_proxy
private

Definition at line 141 of file io_plug.h.


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