diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-12 14:34:03 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-12 14:34:03 +0000 |
commit | 62620122a96af73c9714c4de492c43382c5f0297 (patch) | |
tree | b5e4755f4da8602613fcfd70b6196aaa251f48df /gtk2_ardour | |
parent | cd21bc58aa9394457714ef0fbf4442f6274f5f2a (diff) |
propagate GUI track selection to control protocols; make MCP update when GUI track selection changes
git-svn-id: svn://localhost/ardour2/branches/3.0@11941 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_selection.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc index 727b0d272b..17597d9d15 100644 --- a/gtk2_ardour/editor_selection.cc +++ b/gtk2_ardour/editor_selection.cc @@ -29,6 +29,8 @@ #include "ardour/midi_region.h" #include "ardour/audioplaylist.h" +#include "control_protocol/control_protocol.h" + #include "editor.h" #include "actions.h" #include "audio_time_axis.h" @@ -965,6 +967,8 @@ Editor::track_selection_changed () break; } + RouteNotificationListPtr routes (new RouteNotificationList); + for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { bool yn = (find (selection->tracks.begin(), selection->tracks.end(), *i) != selection->tracks.end()); @@ -983,9 +987,21 @@ Editor::track_selection_changed () } else { (*i)->hide_selection (); } + + + if (yn) { + RouteTimeAxisView* rtav = dynamic_cast<RouteTimeAxisView*> (*i); + if (rtav) { + routes->push_back (rtav->route()); + } + } } ActionManager::set_sensitive (ActionManager::track_selection_sensitive_actions, !selection->tracks.empty()); + + /* notify control protocols */ + + ControlProtocol::TrackSelectionChanged (routes); } void |