X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fmackie%2Fmackie_control_protocol.cc;h=d3318519751b29f77955daf4379e9e6bb120a648;hb=81179389d31feeb69218a99f3dbbd91161d48c7a;hp=c6263ef9bf7b78583d09dc32686204ed14fb37c7;hpb=8ba8f1c0b08bb1c8ffbb4f419806e0c05619808b;p=ardour.git diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index c6263ef9bf..d331851975 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -1622,10 +1622,33 @@ MackieControlProtocol::clear_ports () } void -MackieControlProtocol::set_subview_mode (SubViewMode sm) +MackieControlProtocol::set_subview_mode (SubViewMode sm, boost::shared_ptr r) { _subview_mode = sm; - display_view_mode (); + _subview_route = r; + + if (_subview_mode == None) { + assert (!_subview_route); + } + + { + Glib::Threads::Mutex::Lock lm (surfaces_lock); + + for (Surfaces::iterator s = surfaces.begin(); s != surfaces.end(); ++s) { + (*s)->subview_mode_changed (); + } + } + + /* turn buttons related to vpot mode on or off as required */ + + if (_subview_mode != None) { + update_global_button (Button::Trim, off); + update_global_button (Button::Send, off); + update_global_button (Button::Pan, off); + } else { + pot_mode_globals (); + } + } void @@ -1649,15 +1672,6 @@ MackieControlProtocol::display_view_mode () (*s)->update_view_mode_display (); } } - - /* turn buttons related to vpot mode on or off as required */ - if (_subview_mode != None) { - update_global_button (Button::Trim, off); - update_global_button (Button::Send, off); - update_global_button (Button::Pan, off); - } else { - pot_mode_globals (); - } } void @@ -2150,3 +2164,21 @@ MackieControlProtocol::selected (boost::shared_ptr r) const } return false; } + +boost::shared_ptr +MackieControlProtocol::first_selected_route () const +{ + if (_last_selected_routes.empty()) { + return boost::shared_ptr(); + } + + boost::shared_ptr r = _last_selected_routes.front().lock(); + + return r; /* may be null */ +} + +boost::shared_ptr +MackieControlProtocol::subview_route () const +{ + return _subview_route; +}