29 #include <glibmm/threads.h>
48 #include "ardour/utils.h"
91 bool active()
const {
return _active; }
96 std::string
pretty_name ()
const {
return _pretty_name_prefix; }
99 _audio_channel_names = acn;
112 std::shared_ptr<Bundle>
bundle () {
return _bundle; }
118 int connect (std::shared_ptr<Port> our_port, std::string other_port,
void *src);
119 int disconnect (std::shared_ptr<Port> our_port, std::string other_port,
void *src);
135 std::shared_ptr<PortSet const>
ports ()
const;
139 std::shared_ptr<Port>
nth (uint32_t n)
const;
142 std::shared_ptr<AudioPort>
audio(uint32_t n)
const;
143 std::shared_ptr<MidiPort>
midi(uint32_t n)
const;
164 template <
typename Iter>
167 while (first != last) {
std::string build_legal_port_name(std::shared_ptr< PortSet const >, DataType type)
static const std::string state_node_name
int ensure_ports_locked(ChanCount, bool clear, bool &changed)
bool connected_to(const std::string &) const
std::string pretty_name() const
void copy_to_outputs(BufferSet &bufs, DataType type, pframes_t nframes, samplecnt_t offset)
PBD::Signal< void(IOChange, void *)> changed
std::shared_ptr< Bundle > bundle()
std::shared_ptr< PortSet > ports()
bool has_ext_connection() const
bool has_port(std::shared_ptr< Port >) const
int32_t find_port_hole(std::shared_ptr< PortSet const >, const char *base)
PBD::SignalWithCombiner< BoolCombiner, bool(ChanCount)> PortCountChanging
std::shared_ptr< AudioPort > audio(uint32_t n) const
static std::string name_from_state(const XMLNode &)
void set_default_type(DataType t)
virtual void silence(samplecnt_t)
int disconnect(void *src)
static int parse_gain_string(const std::string &, std::vector< std::string > &chns)
IO(Session &, const std::string &name, Direction, DataType default_type=DataType::AUDIO, bool sendish=false)
int ensure_io(ChanCount cnt, bool clear, void *src)
int disconnect(std::shared_ptr< Port > our_port, std::string other_port, void *src)
std::string _pretty_name_prefix
bool set_name(const std::string &str)
void bundle_changed(Bundle::Change)
int connect(std::shared_ptr< Port > our_port, std::string other_port, void *src)
void flush_buffers(pframes_t nframes)
SerializedRCUManager< PortSet > _ports
std::shared_ptr< Bundle > find_possible_bundle(const std::string &desired_name)
void reestablish_port_subscriptions()
bool can_add_port(DataType) const
static PBD::Signal< void(ChanCount)> PortCountChanged
static int parse_io_string(const std::string &, std::vector< std::string > &chns)
samplecnt_t connected_latency(bool for_playback) const
int disconnect_ports_from_bundle(std::shared_ptr< Bundle >, void *)
DataType default_type() const
int set_state(const XMLNode &, int version)
int set_port_state_2X(const XMLNode &node, int version, bool in)
int get_port_counts(const XMLNode &node, int version, ChanCount &n, std::shared_ptr< Bundle > &c)
int get_port_counts_2X(const XMLNode &node, int version, ChanCount &n, std::shared_ptr< Bundle > &c)
std::shared_ptr< Port > nth(uint32_t n) const
int ensure_ports(ChanCount, bool clear, void *src)
const ChanCount & n_ports() const
void set_public_port_latencies(samplecnt_t value, bool playback) const
std::shared_ptr< MidiPort > midi(uint32_t n) const
static void prepare_for_reset(XMLNode &, const std::string &)
int connect_ports_to_bundle(std::shared_ptr< Bundle >, bool, bool, void *)
void set_pretty_name(const std::string &str)
std::vector< std::string > _audio_channel_names
std::shared_ptr< Port > port_by_name(const std::string &str) const
int add_port(std::string connection, void *src, DataType type=DataType::NIL)
virtual XMLNode & state() const
void connection_change(std::shared_ptr< ARDOUR::Port >, std::shared_ptr< ARDOUR::Port >)
int set_ports(const std::string &str)
void collect_input(BufferSet &bufs, pframes_t nframes, ChanCount offset)
int remove_port(std::shared_ptr< Port >, void *src)
std::shared_ptr< PortSet const > ports() const
int create_ports(const XMLNode &, int version)
void set_public_port_latency_from_connections() const
void set_private_port_latencies(samplecnt_t value, bool playback)
IO(Session &, const XMLNode &, DataType default_type=DataType::AUDIO, bool sendish=false)
void set_audio_channel_names(std::vector< std::string > const &acn)
int connect_ports_to_bundle(std::shared_ptr< Bundle >, bool exclusive, void *)
bool connected_to(std::shared_ptr< const IO >) const
XMLNode & get_state() const
std::string bundle_channel_name(uint32_t, uint32_t, DataType) const
Direction direction() const
static void set_name_in_state(XMLNode &, const std::string &)
std::shared_ptr< Bundle > _bundle
a bundle representing our ports
bool physically_connected() const
PBD::ScopedConnectionList _port_connections
int set_state_2X(const XMLNode &, int, bool)
samplecnt_t latency() const
BundleList bundles_connected()
GtkImageIconNameData name
Temporal::samplecnt_t samplecnt_t
std::vector< std::shared_ptr< Bundle > > BundleList
DEFINE_ENUM_CONVERT(ARDOUR::Track::FreezeState)
std::shared_ptr< UserBundle > bundle
PBD::ScopedConnection changed
UserBundleInfo(IO *, std::shared_ptr< UserBundle > b)