Display hardware IO individually in the port matrices unless we are in _show_only_bundles mode.
git-svn-id: svn://localhost/ardour2/branches/3.0@12348 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
9e50baae63
commit
78237f3ac3
|
@ -60,7 +60,7 @@ BundleEditorMatrix::setup_ports (int dim)
|
|||
otherwise in some cases the basic system IO ports may be hidden, making
|
||||
the bundle editor useless */
|
||||
|
||||
_ports[OTHER].gather (_session, DataType::NIL, _bundle->ports_are_inputs(), true);
|
||||
_ports[OTHER].gather (_session, DataType::NIL, _bundle->ports_are_inputs(), true, show_only_bundles ());
|
||||
_ports[OTHER].remove_bundle (_bundle);
|
||||
_ports[OTHER].resume_signals ();
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ void
|
|||
GlobalPortMatrix::setup_ports (int dim)
|
||||
{
|
||||
_ports[dim].suspend_signals ();
|
||||
_ports[dim].gather (_session, type(), dim == IN, false);
|
||||
_ports[dim].gather (_session, type(), dim == IN, false, show_only_bundles ());
|
||||
_ports[dim].resume_signals ();
|
||||
}
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@ IOSelector::setup_ports (int dim)
|
|||
|
||||
if (dim == _other) {
|
||||
|
||||
_ports[_other].gather (_session, type(), _find_inputs_for_io_outputs, false);
|
||||
_ports[_other].gather (_session, type(), _find_inputs_for_io_outputs, false, show_only_bundles ());
|
||||
|
||||
} else {
|
||||
|
||||
|
|
|
@ -321,9 +321,12 @@ public:
|
|||
|
||||
/** Gather ports from around the system and put them in this PortGroupList.
|
||||
* @param type Type of ports to collect, or NIL for all types.
|
||||
* @param use_session_bundles true to use the session's non-user bundles. Doing this will mean that
|
||||
* hardware ports will be gathered into stereo pairs, as the session sets up bundles for these pairs.
|
||||
* Not using the session bundles will mean that all hardware IO will be presented separately.
|
||||
*/
|
||||
void
|
||||
PortGroupList::gather (ARDOUR::Session* session, ARDOUR::DataType type, bool inputs, bool allow_dups)
|
||||
PortGroupList::gather (ARDOUR::Session* session, ARDOUR::DataType type, bool inputs, bool allow_dups, bool use_session_bundles)
|
||||
{
|
||||
clear ();
|
||||
|
||||
|
@ -408,9 +411,12 @@ PortGroupList::gather (ARDOUR::Session* session, ARDOUR::DataType type, bool inp
|
|||
}
|
||||
}
|
||||
|
||||
for (BundleList::iterator i = b->begin(); i != b->end(); ++i) {
|
||||
if (boost::dynamic_pointer_cast<UserBundle> (*i) == 0 && (*i)->ports_are_inputs() == inputs) {
|
||||
system->add_bundle (*i, allow_dups);
|
||||
/* Only look for non-user bundles if instructed to do so */
|
||||
if (use_session_bundles) {
|
||||
for (BundleList::iterator i = b->begin(); i != b->end(); ++i) {
|
||||
if (boost::dynamic_pointer_cast<UserBundle> (*i) == 0 && (*i)->ports_are_inputs() == inputs) {
|
||||
system->add_bundle (*i, allow_dups);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ class PortGroupList : public sigc::trackable
|
|||
|
||||
void add_group (boost::shared_ptr<PortGroup>);
|
||||
void add_group_if_not_empty (boost::shared_ptr<PortGroup>);
|
||||
void gather (ARDOUR::Session *, ARDOUR::DataType, bool, bool);
|
||||
void gather (ARDOUR::Session *, ARDOUR::DataType, bool, bool, bool);
|
||||
PortGroup::BundleList const & bundles () const;
|
||||
void clear ();
|
||||
void remove_bundle (boost::shared_ptr<ARDOUR::Bundle>);
|
||||
|
|
|
@ -623,6 +623,11 @@ PortMatrix::toggle_show_only_bundles ()
|
|||
_show_only_bundles = !_show_only_bundles;
|
||||
|
||||
setup ();
|
||||
|
||||
/* The way in which hardware ports are grouped changes depending on the _show_only_bundles
|
||||
setting, so we need to set things up again now.
|
||||
*/
|
||||
setup_all_ports ();
|
||||
}
|
||||
|
||||
pair<uint32_t, uint32_t>
|
||||
|
|
Loading…
Reference in New Issue