diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-26 22:10:32 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-26 22:10:32 +0000 |
commit | ae2e8c67657daccb2cdafc3ddfeb7d9df126ed8f (patch) | |
tree | 8046fa3beb086b7c69e5d0d51b72823ea2c7689e /libs | |
parent | cafbc632fb71db817d399dce5f18be7528573a6f (diff) |
MCP: ctrl-select toggle selections status, analogous to GUI op
git-svn-id: svn://localhost/ardour2/branches/3.0@12102 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/surfaces/control_protocol/control_protocol.cc | 1 | ||||
-rw-r--r-- | libs/surfaces/control_protocol/control_protocol/control_protocol.h | 1 | ||||
-rw-r--r-- | libs/surfaces/mackie/mackie_control_protocol.cc | 11 |
3 files changed, 10 insertions, 3 deletions
diff --git a/libs/surfaces/control_protocol/control_protocol.cc b/libs/surfaces/control_protocol/control_protocol.cc index ec58dc2f21..e0eb57fc87 100644 --- a/libs/surfaces/control_protocol/control_protocol.cc +++ b/libs/surfaces/control_protocol/control_protocol.cc @@ -47,6 +47,7 @@ PBD::Signal0<void> ControlProtocol::VerticalZoomOutSelected; PBD::Signal1<void,RouteNotificationListPtr> ControlProtocol::TrackSelectionChanged; PBD::Signal1<void,uint32_t> ControlProtocol::AddRouteToSelection; PBD::Signal1<void,uint32_t> ControlProtocol::SetRouteSelection; +PBD::Signal1<void,uint32_t> ControlProtocol::ToggleRouteSelection; PBD::Signal1<void,uint32_t> ControlProtocol::RemoveRouteFromSelection; PBD::Signal0<void> ControlProtocol::ClearRouteSelection; PBD::Signal0<void> ControlProtocol::StepTracksDown; diff --git a/libs/surfaces/control_protocol/control_protocol/control_protocol.h b/libs/surfaces/control_protocol/control_protocol/control_protocol.h index b75a04db2a..6021f189fe 100644 --- a/libs/surfaces/control_protocol/control_protocol/control_protocol.h +++ b/libs/surfaces/control_protocol/control_protocol/control_protocol.h @@ -78,6 +78,7 @@ class ControlProtocol : public PBD::Stateful, public PBD::ScopedConnectionList, static PBD::Signal1<void,uint32_t> AddRouteToSelection; static PBD::Signal1<void,uint32_t> SetRouteSelection; + static PBD::Signal1<void,uint32_t> ToggleRouteSelection; static PBD::Signal1<void,uint32_t> RemoveRouteFromSelection; static PBD::Signal0<void> ClearRouteSelection; diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index ccd29a4d39..a5bcefcb17 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -1247,10 +1247,15 @@ MackieControlProtocol::select_range () if (!routes.empty()) { for (RouteList::iterator r = routes.begin(); r != routes.end(); ++r) { - if (r == routes.begin()) { - SetRouteSelection ((*r)->remote_control_id()); + + if (_modifier_state == MODIFIER_CONTROL) { + ToggleRouteSelection ((*r)->remote_control_id ()); } else { - AddRouteToSelection ((*r)->remote_control_id()); + if (r == routes.begin()) { + SetRouteSelection ((*r)->remote_control_id()); + } else { + AddRouteToSelection ((*r)->remote_control_id()); + } } } } |