#include <ardour/latent.h>
#include <ardour/automation_control.h>
#include <ardour/session_object.h>
+#include <ardour/bundle.h>
using std::string;
using std::vector;
class Session;
class AudioEngine;
-class Bundle;
class UserBundle;
+class Bundle;
class Panner;
class PeakMeter;
class Port;
class MidiPort;
class BufferSet;
-
/** A collection of input and output ports with connections.
*
* An IO can contain ports of varying types, making routes/inserts/etc with
IO (Session&, const string& name,
int input_min = -1, int input_max = -1,
int output_min = -1, int output_max = -1,
- DataType default_type = DataType::AUDIO,
- bool public_ports = true);
+ DataType default_type = DataType::AUDIO);
IO (Session&, const XMLNode&, DataType default_type = DataType::AUDIO);
int ensure_io (ChanCount in, ChanCount out, bool clear, void *src);
- int connect_input_ports_to_bundle (boost::shared_ptr<Bundle>, void *src);
- int connect_output_ports_to_bundle (boost::shared_ptr<Bundle>, void *src);
+ int connect_input_ports_to_bundle (boost::shared_ptr<Bundle>, void *);
+ int disconnect_input_ports_from_bundle (boost::shared_ptr<Bundle>, void *);
+ int connect_output_ports_to_bundle (boost::shared_ptr<Bundle>, void *);
+ int disconnect_output_ports_from_bundle (boost::shared_ptr<Bundle>, void *);
BundleList bundles_connected_to_inputs ();
BundleList bundles_connected_to_outputs ();
bool _denormal_protection;
XMLNode* deferred_state;
DataType _default_type;
- bool _public_ports;
virtual void prepare_inputs (nframes_t nframes, nframes_t offset);
virtual void flush_outputs (nframes_t nframes, nframes_t offset);
UserBundleInfo (IO*, boost::shared_ptr<UserBundle> b);
boost::shared_ptr<UserBundle> bundle;
- sigc::connection configuration_changed;
- sigc::connection ports_changed;
+ sigc::connection changed;
};
std::vector<UserBundleInfo> _bundles_connected_to_outputs; ///< user bundles connected to our outputs
void check_bundles_connected_to_outputs ();
void check_bundles (std::vector<UserBundleInfo>&, const PortSet&);
- void bundle_configuration_changed ();
- void bundle_ports_changed (int);
+ void bundle_changed (Bundle::Change);
int create_ports (const XMLNode&);
int make_connections (const XMLNode&);
int32_t find_output_port_hole (const char* base);
void setup_bundles_for_inputs_and_outputs ();
+ void setup_bundle_for_inputs ();
+ void setup_bundle_for_outputs ();
std::string bundle_channel_name (uint32_t, uint32_t) const;
};