/*
- Copyright (C) 2002-2009 Paul Davis
+ Copyright (C) 2002-2009 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
-#ifndef __gtk_ardour_port_group_h__
-#define __gtk_ardour_port_group_h__
+#ifndef __gtk_ardour_port_group_h__
+#define __gtk_ardour_port_group_h__
#include <vector>
#include <string>
PortGroup (std::string const & n);
void add_bundle (boost::shared_ptr<ARDOUR::Bundle>);
- void add_bundle (boost::shared_ptr<ARDOUR::Bundle>, Gdk::Color);
+ void add_bundle (boost::shared_ptr<ARDOUR::Bundle>, boost::shared_ptr<ARDOUR::IO> io);
+ void add_bundle (boost::shared_ptr<ARDOUR::Bundle>, boost::shared_ptr<ARDOUR::IO>, Gdk::Color);
void remove_bundle (boost::shared_ptr<ARDOUR::Bundle>);
boost::shared_ptr<ARDOUR::Bundle> only_bundle ();
void clear ();
uint32_t total_channels () const;
+ boost::shared_ptr<ARDOUR::IO> io_from_bundle (boost::shared_ptr<ARDOUR::Bundle>) const;
std::string name; ///< name for the group
void set_visible (bool v) {
_visible = v;
- Modified ();
+ Changed ();
}
bool has_port (std::string const &) const;
- sigc::signal<void> Modified;
+ sigc::signal<void> Changed;
sigc::signal<void, ARDOUR::Bundle::Change> BundleChanged;
struct BundleRecord {
boost::shared_ptr<ARDOUR::Bundle> bundle;
+ boost::shared_ptr<ARDOUR::IO> io;
Gdk::Color colour;
bool has_colour;
sigc::connection changed_connection;
BundleList const & bundles () const {
return _bundles;
}
-
+
private:
void bundle_changed (ARDOUR::Bundle::Change);
uint32_t size () const {
return _groups.size();
}
+ boost::shared_ptr<ARDOUR::IO> io_from_bundle (boost::shared_ptr<ARDOUR::Bundle>) const;
void suspend_signals ();
void resume_signals ();
}
sigc::signal<void> Changed;
+ sigc::signal<void, ARDOUR::Bundle::Change> BundleChanged;
private:
bool port_has_prefix (std::string const &, std::string const &) const;
std::string common_prefix (std::vector<std::string> const &) const;
std::string common_prefix_before (std::vector<std::string> const &, std::string const &) const;
void emit_changed ();
+ void emit_bundle_changed (ARDOUR::Bundle::Change);
boost::shared_ptr<ARDOUR::Bundle> make_bundle_from_ports (std::vector<std::string> const &, bool) const;
void maybe_add_processor_to_bundle (boost::weak_ptr<ARDOUR::Processor>, boost::shared_ptr<RouteBundle>, bool, std::set<boost::shared_ptr<ARDOUR::IO> > &);
std::vector<sigc::connection> _bundle_changed_connections;
bool _signals_suspended;
bool _pending_change;
+ ARDOUR::Bundle::Change _pending_bundle_change;
};
private:
void reread_component_bundles ();
-
+
boost::shared_ptr<ARDOUR::Bundle> _route;
std::vector<boost::shared_ptr<ARDOUR::Bundle> > _processor;
};