summaryrefslogtreecommitdiff
path: root/gtk2_ardour/port_group.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-07-30 02:09:39 +0000
committerCarl Hetherington <carl@carlh.net>2010-07-30 02:09:39 +0000
commit1f07948972ca1cac5854539268ca3b290b79c671 (patch)
tree4d507ec8a035894628a8f5b84486656fdff6d0e9 /gtk2_ardour/port_group.cc
parent66760a574a1fc0ccc8a798c2900a717c134838ea (diff)
Put Mackie surface ports into the Ardour tab of the port matrix.
git-svn-id: svn://localhost/ardour2/branches/3.0@7522 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/port_group.cc')
-rw-r--r--gtk2_ardour/port_group.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/gtk2_ardour/port_group.cc b/gtk2_ardour/port_group.cc
index 1382826b90..a8e70ea501 100644
--- a/gtk2_ardour/port_group.cc
+++ b/gtk2_ardour/port_group.cc
@@ -29,6 +29,8 @@
#include "ardour/port.h"
#include "ardour/session.h"
#include "ardour/auditioner.h"
+#include "ardour/control_protocol_manager.h"
+#include "control_protocol/control_protocol.h"
#include "gui_thread.h"
#include "port_group.h"
@@ -422,6 +424,20 @@ PortGroupList::gather (ARDOUR::Session* session, ARDOUR::DataType type, bool inp
}
}
+ /* Ardour's surfaces */
+
+ ControlProtocolManager& m = ControlProtocolManager::instance ();
+ for (list<ControlProtocolInfo*>::iterator i = m.control_protocol_info.begin(); i != m.control_protocol_info.end(); ++i) {
+ if ((*i)->protocol) {
+ list<boost::shared_ptr<Bundle> > b = (*i)->protocol->bundles ();
+ for (list<boost::shared_ptr<Bundle> >::iterator j = b.begin(); j != b.end(); ++j) {
+ if ((*j)->ports_are_inputs() == inputs) {
+ ardour->add_bundle (*j);
+ }
+ }
+ }
+ }
+
/* Now find all other ports that we haven't thought of yet */
std::vector<std::string> extra_system[DataType::num_types];