summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2016-07-03 18:22:09 -0700
committerLen Ovens <len@ovenwerks.net>2016-07-03 18:22:09 -0700
commita373e4cfc80cfc1dc712ecdf8013c18286ce2a6b (patch)
treea9ecba3817e2a70cf5c94852fd19967009235b8d /libs
parent402e9cb20d134e7803c33460d22c4330cfca66d2 (diff)
UI: Add editor_mixer route pointer to session so all UIs can know the same current_strip even in a selected group.
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/session.h3
-rw-r--r--libs/surfaces/osc/osc.cc2
2 files changed, 4 insertions, 1 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index ebafdd82f6..6c3d869013 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -818,6 +818,8 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
boost::shared_ptr<Route> monitor_out() const { return _monitor_out; }
boost::shared_ptr<Route> master_out() const { return _master_out; }
+ boost::weak_ptr<Route> get_editor_mixer() const { return _editor_mixer; }
+ void set_editor_mixer (boost::weak_ptr<Route> r) { _editor_mixer = r; }
void globally_add_internal_sends (boost::shared_ptr<Route> dest, Placement p, bool);
void globally_set_send_gains_from_track (boost::shared_ptr<Route> dest);
@@ -1867,6 +1869,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
boost::shared_ptr<Route> _master_out;
boost::shared_ptr<Route> _monitor_out;
+ boost::weak_ptr<Route> _editor_mixer;
void auto_connect_master_bus ();
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index a32e215290..57eb6c0f7a 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -2617,7 +2617,7 @@ OSC::gui_selection_changed (StripableNotificationListPtr stripables)
boost::shared_ptr<Stripable> strip;
if (!stripables->empty()) {
- strip = stripables->front().lock();
+ strip = boost::dynamic_pointer_cast<Stripable>(session->get_editor_mixer().lock());
}
if (strip) {
for (uint32_t it = 0; it < _surface.size(); ++it) {