X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fio.h;h=9afd0167e3bd040154180047289de698b6a92884;hb=8a128b33d38172ae525ac798c53bc105bc4e2c64;hp=2451611b1b6b3a39611e49168f111ffd683c498e;hpb=1b830d59428f51179094f917a09b0acc16f31c8e;p=ardour.git diff --git a/libs/ardour/ardour/io.h b/libs/ardour/ardour/io.h index 2451611b1b..9afd0167e3 100644 --- a/libs/ardour/ardour/io.h +++ b/libs/ardour/ardour/io.h @@ -23,9 +23,8 @@ #include #include #include -#include -#include +#include #include "pbd/fastlog.h" #include "pbd/undo.h" @@ -40,6 +39,7 @@ #include "ardour/latent.h" #include "ardour/port_set.h" #include "ardour/session_object.h" +#include "ardour/libardour_visibility.h" #include "ardour/types.h" #include "ardour/utils.h" #include "ardour/buffer_set.h" @@ -64,7 +64,7 @@ class UserBundle; * An IO can contain ports of varying types, making routes/inserts/etc with * varied combinations of types (eg MIDI and audio) possible. */ -class IO : public SessionObject, public Latent +class LIBARDOUR_API IO : public SessionObject, public Latent { public: static const std::string state_node_name; @@ -74,8 +74,8 @@ class IO : public SessionObject, public Latent Output }; - IO (Session&, const std::string& name, Direction, DataType default_type = DataType::AUDIO); - IO (Session&, const XMLNode&, DataType default_type = DataType::AUDIO); + IO (Session&, const std::string& name, Direction, DataType default_type = DataType::AUDIO, bool sendish = false); + IO (Session&, const XMLNode&, DataType default_type = DataType::AUDIO, bool sendish = false); virtual ~IO(); @@ -94,7 +94,7 @@ class IO : public SessionObject, public Latent int ensure_io (ChanCount cnt, bool clear, void *src); - int connect_ports_to_bundle (boost::shared_ptr, void *); + int connect_ports_to_bundle (boost::shared_ptr, bool exclusive, void *); int disconnect_ports_from_bundle (boost::shared_ptr, void *); BundleList bundles_connected (); @@ -152,7 +152,7 @@ class IO : public SessionObject, public Latent typedef bool result_type; template - bool operator() (Iter first, Iter last) const { + result_type operator() (Iter first, Iter last) const { bool r = false; while (first != last) { if (*first) { @@ -200,13 +200,14 @@ class IO : public SessionObject, public Latent int set_ports (const std::string& str); private: - mutable Glib::Mutex io_lock; + mutable Glib::Threads::Mutex io_lock; protected: PortSet _ports; Direction _direction; DataType _default_type; bool _active; + bool _sendish; private: int connecting_became_legal ();