diff options
author | Carl Hetherington <carl@carlh.net> | 2009-01-26 19:25:51 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2009-01-26 19:25:51 +0000 |
commit | 7dd80013006c36e852039cdde4407c58f0d4b0ac (patch) | |
tree | a4bed3c3737fd8adba3a003237487b80930ff56e | |
parent | 49510ba1d7fc1c85e767c05f10f9481998ef94b0 (diff) |
Put sends / inserts into the port matrix next to their tracks / busses
git-svn-id: svn://localhost/ardour2/branches/3.0@4444 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/port_group.cc | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/gtk2_ardour/port_group.cc b/gtk2_ardour/port_group.cc index 616f674ddb..086e0b75d9 100644 --- a/gtk2_ardour/port_group.cc +++ b/gtk2_ardour/port_group.cc @@ -137,6 +137,7 @@ PortGroupList::gather (ARDOUR::Session& session) for (ARDOUR::Session::RouteList::const_iterator i = routes->begin(); i != routes->end(); ++i) { + /* Route IO */ PortGroup* g = 0; if (_type == ARDOUR::DataType::AUDIO) { @@ -160,18 +161,34 @@ PortGroupList::gather (ARDOUR::Session& session) if (g) { g->add_bundle (_offer_inputs ? (*i)->bundle_for_inputs() : (*i)->bundle_for_outputs ()); } + + /* Ports from this route's processors */ + + uint32_t n = 0; + while (1) { + boost::shared_ptr<ARDOUR::Processor> p = (*i)->nth_processor (n); + if (p == 0) { + break; + } + + boost::shared_ptr<ARDOUR::IOProcessor> iop = boost::dynamic_pointer_cast<ARDOUR::IOProcessor> (p); + if (iop) { + g->add_bundle (_offer_inputs ? iop->io()->bundle_for_inputs() : iop->io()->bundle_for_outputs()); + } + + ++n; + } } /* Bundles created by the session */ + boost::shared_ptr<ARDOUR::BundleList> b = session.bundles (); for (ARDOUR::BundleList::iterator i = b->begin(); i != b->end(); ++i) { if ((*i)->ports_are_inputs() == _offer_inputs && (*i)->type() == _type) { _system.bundles.push_back (*i); } } - - /* XXX: inserts, sends, plugin inserts? */ - + /* Now find all other ports that we haven't thought of yet */ const char **ports = session.engine().get_ports ("", _type.to_jack_type(), _offer_inputs ? |