summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_selection.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-04-12 14:34:03 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-04-12 14:34:03 +0000
commit62620122a96af73c9714c4de492c43382c5f0297 (patch)
treeb5e4755f4da8602613fcfd70b6196aaa251f48df /gtk2_ardour/editor_selection.cc
parentcd21bc58aa9394457714ef0fbf4442f6274f5f2a (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/editor_selection.cc')
-rw-r--r--gtk2_ardour/editor_selection.cc16
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