Logo Search packages:      
Sourcecode: ardour version File versions

ARDOUR::IO Class Reference

#include <io.h>

Inheritance diagram for ARDOUR::IO:

sigc::trackable

List of all members.


Detailed Description

A collection of input and output ports with connections.

An IO can contain ports of varying types, making routes/inserts/etc with varied combinations of types (eg MIDI and audio) possible.

Definition at line 60 of file io.h.


Public Member Functions

void add_extra_xml (XMLNode &)
int add_input_port (string source, void *src, DataType type=DataType::NIL)
virtual void add_instant_xml (XMLNode &, const std::string &dir)
int add_output_port (string destination, void *src, DataType type=DataType::NIL)
void allow_pan_reset ()
void automation_snapshot (nframes_t now)
void clear_automation ()
void collect_input (vector< Sample * > &, uint32_t nbufs, nframes_t nframes, nframes_t offset)
int connect_input (Port *our_port, string other_port, void *src)
int connect_output (Port *our_port, string other_port, void *src)
DataType default_type () const
void defer_pan_reset ()
void deliver_output (vector< Sample * > &, uint32_t nbufs, nframes_t nframes, nframes_t offset)
void deliver_output_no_pan (vector< Sample * > &, uint32_t nbufs, nframes_t nframes, nframes_t offset)
int disconnect_input (Port *our_port, string other_port, void *src)
int disconnect_inputs (void *src)
int disconnect_output (Port *our_port, string other_port, void *src)
int disconnect_outputs (void *src)
void drop_references () const
virtual gain_t effective_gain () const
void end_gain_touch ()
void end_pan_touch (uint32_t which)
int ensure_io (uint32_t, uint32_t, bool clear, void *src)
XMLNode * extra_xml (const std::string &str)
gain_t gain () const
ARDOUR::Curve & gain_automation_curve ()
bool gain_automation_playback () const
bool gain_automation_recording () const
AutoState gain_automation_state () const
AutoStyle gain_automation_style () const
PBD::Controllable & gain_control ()
XMLNode & get_state (void)
const PBD::ID & id () const
void inc_gain (gain_t delta, void *src)
Port * input (uint32_t n) const
Connection * input_connection () const
nframes_t input_latency () const
int input_maximum () const
int input_minimum () const
XMLNode * instant_xml (const std::string &str, const std::string &dir)
 IO (Session &, const XMLNode &, DataType default_type=DataType::AUDIO)
 IO (Session &, string name, int input_min=-1, int input_max=-1, int output_min=-1, int output_max=-1, DataType default_type=DataType::AUDIO)
void just_meter_input (nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset)
float max_peak_power (uint32_t n)
uint32_t n_inputs () const
uint32_t n_outputs () const
virtual uint32_t n_process_buffers ()
const string & name () const
Port * output (uint32_t n) const
Connection * output_connection () const
nframes_t output_latency () const
int output_maximum () const
int output_minimum () const
void pan (vector< Sample * > &bufs, uint32_t nbufs, nframes_t nframes, nframes_t offset, gain_t gain_coeff)
void pan_automated (vector< Sample * > &bufs, uint32_t nbufs, nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset)
const Panner & panner () const
Panner & panner ()
float peak_input_power (uint32_t n)
int ports_became_legal ()
int remove_input_port (Port *, void *src)
int remove_output_port (Port *, void *src)
void reset_max_peak_meters ()
virtual void set_gain (gain_t g, void *src)
virtual void set_gain_automation_state (AutoState)
virtual void set_gain_automation_style (AutoStyle)
int set_input (Port *, void *src)
void set_input_maximum (int n)
void set_input_minimum (int n)
virtual int set_name (string str, void *src)
void set_output_maximum (int n)
void set_output_minimum (int n)
void set_port_latency (nframes_t)
int set_state (const XMLNode &)
virtual void silence (nframes_t, nframes_t offset)
void start_gain_touch ()
void start_pan_touch (uint32_t which)
virtual XMLNode & state (bool full)
virtual void transport_stopped (nframes_t now)
int use_input_connection (Connection &, void *src)
int use_output_connection (Connection &, void *src)

Static Public Member Functions

static jack_nframes_t automation_interval ()
static int disable_connecting (void)
static int disable_panners (void)
static int disable_ports (void)
static int enable_connecting (void)
static int enable_ports (void)
static int reset_panners (void)
static void set_automation_interval (jack_nframes_t frames)
static void update_meters ()

Public Attributes

sigc::signal< void > gain_automation_state_changed
sigc::signal< void > gain_automation_style_changed
sigc::signal< void, void * > gain_changed
sigc::signal< void > GoingAway
sigc::signal< void, IOChange,
void * > 
input_changed
sigc::signal< void, void * > name_changed
sigc::signal< void, IOChange,
void * > 
output_changed
XMLNode * pending_state_node

Static Public Attributes

static sigc::signal< int > ConnectingLegal
static sigc::signal< void,
uint32_t > 
MoreOutputs
static sigc::signal< int > PannersLegal
static sigc::signal< int > PortsCreated
static sigc::signal< int > PortsLegal
static const string state_node_name = "IO"

Protected Member Functions

virtual XMLNode & get_automation_state ()
virtual int load_automation (std::string path)
virtual uint32_t pans_required () const
void reset_panner ()
void reset_peak_meters ()
virtual int set_automation_state (const XMLNode &)
virtual void set_deferred_state ()
int set_inputs (const string &str)
int set_outputs (const string &str)

Static Protected Member Functions

static void apply_declick (vector< Sample * > &, uint32_t nbufs, nframes_t nframes, gain_t initial, gain_t target, bool invert_polarity)

Protected Attributes

DataType _default_type
gain_t _desired_gain
gain_t _effective_gain
XMLNode * _extra_xml
gain_t _gain
Curve _gain_automation_curve
AutoState _gain_automation_state
AutoStyle _gain_automation_style
GainControllable _gain_control
PBD::ID _id
bool _ignore_gain_on_deliver
Connection * _input_connection
vector< Port * > _inputs
XMLNode * _instant_xml
vector< float > _max_peak_power
string _name
Connection * _output_connection
vector< Port * > _outputs
Panner * _panner
vector< float > _peak_power
Session & _session
vector< float > _visible_peak_power
bool apply_gain_automation
Glib::Mutex automation_lock
Glib::Mutex declick_lock
XMLNode * deferred_state
nframes_t last_automation_snapshot
bool no_panner_reset

Static Protected Attributes

static nframes_t _automation_interval = 0
static bool connecting_legal = false
static bool ports_legal = false

Package Functions

void add_destroy_notify_callback (void *data, func_destroy_notify func) const
void notify_callbacks ()
 Execute and remove all previously installed callbacks.
void remove_destroy_notify_callback (void *data) const

Package Attributes

 __pad0__:func_destroy_notify func_destroy_notify

Private Member Functions

int connecting_became_legal ()
int create_ports (const XMLNode &)
void drop_input_connection ()
void drop_output_connection ()
int ensure_inputs (uint32_t, bool clear, bool lockit, void *src)
bool ensure_inputs_locked (uint32_t, bool clear, void *src)
int ensure_outputs (uint32_t, bool clear, bool lockit, void *src)
bool ensure_outputs_locked (uint32_t, bool clear, void *src)
int32_t find_input_port_hole ()
int32_t find_output_port_hole ()
void input_connection_configuration_changed ()
void input_connection_connection_changed (int)
int make_connections (const XMLNode &)
void meter ()
void output_connection_configuration_changed ()
void output_connection_connection_changed (int)
int panners_became_legal ()
int set_destinations (vector< string > &, void *src, bool add)
int set_sources (vector< string > &, void *src, bool add)
void setup_peak_meters ()

Static Private Member Functions

static int parse_gain_string (const string &, vector< string > &chns)
static int parse_io_string (const string &, vector< string > &chns)

Private Attributes

int _input_maximum
int _input_minimum
uint32_t _ninputs
uint32_t _noutputs
int _output_maximum
int _output_minimum
sigc::connection connection_legal_c
sigc::connection input_connection_configuration_connection
sigc::connection input_connection_connection_connection
Glib::Mutex io_lock
sigc::connection m_meter_connection
sigc::connection output_connection_configuration_connection
sigc::connection output_connection_connection_connection
sigc::connection panner_legal_c
sigc::connection port_legal_c

Static Private Attributes

static Glib::StaticMutex m_meter_signal_lock = GLIBMM_STATIC_MUTEX_INIT
static sigc::signal< void > Meter
static bool panners_legal = false

Classes

struct  GainControllable

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

Generated by  Doxygen 1.6.0   Back to index