+ assert (ch < nchannels().n_total());
+ assert (portname.find_first_of (':') != string::npos);
+
+ {
+ Glib::Threads::Mutex::Lock lm (_channel_mutex);
+ _channel[ch].ports.clear ();
+ _channel[ch].ports.push_back (portname);
+ }
+
+ emit_changed (PortsChanged);
+}
+
+/** @param n Channel name */
+void
+Bundle::add_channel (std::string const & n, DataType t)
+{
+ {
+ Glib::Threads::Mutex::Lock lm (_channel_mutex);
+ _channel.push_back (Channel (n, t));
+ }
+
+ emit_changed (ConfigurationChanged);
+}
+
+/** @param n Channel name */
+void
+Bundle::add_channel (std::string const & n, DataType t, PortList p)
+{
+ {
+ Glib::Threads::Mutex::Lock lm (_channel_mutex);
+ _channel.push_back (Channel (n, t, p));
+ }
+
+ emit_changed (ConfigurationChanged);
+}
+
+/** @param n Channel name */
+void
+Bundle::add_channel (std::string const & n, DataType t, std::string const & p)
+{
+ {
+ Glib::Threads::Mutex::Lock lm (_channel_mutex);
+ _channel.push_back (Channel (n, t, p));
+ }
+
+ emit_changed (ConfigurationChanged);