mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-11 17:16:38 +01:00
Make clicks on io menu bundles always connect
If a bundle was already connected, a click on the corresponding entry disconnected it, essentially giving toggle semantics to the io menus. This behavior has three problems: — When clicking on a not yet connected bundle, the new bundle replaces any already connected one. This is not consistent with a toggle mode. — It is a less discoverable and less easy way to disconnect a bundle than the already present "Disconnect" menu entry. — Bundles that match the I/O channels only partially (recently added to cater for e.g. MIDI+STEREO tracks connecting to Master) are never considered "connected" because the channels are not connected 1:1. Those will thus never toggle, making the behavior inconsistent. Change the semantics to ensure a bundle is connected on click instead.
This commit is contained in:
parent
9c793759c8
commit
dea8ee7f38
1 changed files with 2 additions and 14 deletions
|
|
@ -1078,13 +1078,7 @@ MixerStrip::bundle_input_chosen (boost::shared_ptr<ARDOUR::Bundle> c)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ARDOUR::BundleList current = _route->input()->bundles_connected ();
|
_route->input()->connect_ports_to_bundle (c, true, this);
|
||||||
|
|
||||||
if (std::find (current.begin(), current.end(), c) == current.end()) {
|
|
||||||
_route->input()->connect_ports_to_bundle (c, true, this);
|
|
||||||
} else {
|
|
||||||
_route->input()->disconnect_ports_from_bundle (c, this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -1094,13 +1088,7 @@ MixerStrip::bundle_output_chosen (boost::shared_ptr<ARDOUR::Bundle> c)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ARDOUR::BundleList current = _route->output()->bundles_connected ();
|
route->output()->connect_ports_to_bundle (c, true, true, this);
|
||||||
|
|
||||||
if (std::find (current.begin(), current.end(), c) == current.end()) {
|
|
||||||
_route->output()->connect_ports_to_bundle (c, true, true, this);
|
|
||||||
} else {
|
|
||||||
_route->output()->disconnect_ports_from_bundle (c, this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue