diff options
author | Len Ovens <len@ovenwerks.net> | 2016-07-03 18:22:09 -0700 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2016-07-03 18:22:09 -0700 |
commit | a373e4cfc80cfc1dc712ecdf8013c18286ce2a6b (patch) | |
tree | a9ecba3817e2a70cf5c94852fd19967009235b8d /libs | |
parent | 402e9cb20d134e7803c33460d22c4330cfca66d2 (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.h | 3 | ||||
-rw-r--r-- | libs/surfaces/osc/osc.cc | 2 |
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) { |