From 453fac0df758085cc47dea2a411a12410fc21545 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 16 Jun 2021 02:01:31 -0400 Subject: [PATCH] Add BasicUI::click_gain() Towards removing the direct use of Session by surfaces. --- libs/surfaces/control_protocol/basic_ui.cc | 6 ++++++ libs/surfaces/control_protocol/control_protocol/basic_ui.h | 5 +++++ libs/surfaces/osc/osc.cc | 4 ++-- libs/surfaces/osc/osc_global_observer.cc | 2 +- libs/surfaces/push2/push2.cc | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/libs/surfaces/control_protocol/basic_ui.cc b/libs/surfaces/control_protocol/basic_ui.cc index 78c45fa14f..737809aba5 100644 --- a/libs/surfaces/control_protocol/basic_ui.cc +++ b/libs/surfaces/control_protocol/basic_ui.cc @@ -877,6 +877,12 @@ BasicUI::master_out () const return _session->master_out (); } +boost::shared_ptr +BasicUI::click_gain () +{ + return _session->click_gain (); +} + const Locations* BasicUI::locations () const { diff --git a/libs/surfaces/control_protocol/control_protocol/basic_ui.h b/libs/surfaces/control_protocol/control_protocol/basic_ui.h index e815b3790a..f395d96cf4 100644 --- a/libs/surfaces/control_protocol/control_protocol/basic_ui.h +++ b/libs/surfaces/control_protocol/control_protocol/basic_ui.h @@ -39,6 +39,7 @@ namespace ARDOUR { +class Amp; class Locations; class RouteGroup; class Session; @@ -206,6 +207,10 @@ public: boost::shared_ptr monitor_out () const; boost::shared_ptr master_out () const; + /* Clicking */ + + boost::shared_ptr click_gain(); + /* Locations */ const Locations* locations () const; diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index a59525b140..feec0b09b7 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -3224,8 +3224,8 @@ OSC::click_level (float position) return -1; } - if (_session->click_gain()->gain_control()) { - _session->click_gain()->gain_control()->set_value (_session->click_gain()->gain_control()->interface_to_internal (position), PBD::Controllable::NoGroup); + if (click_gain()->gain_control()) { + click_gain()->gain_control()->set_value (_session->click_gain()->gain_control()->interface_to_internal (position), PBD::Controllable::NoGroup); } return 0; } diff --git a/libs/surfaces/osc/osc_global_observer.cc b/libs/surfaces/osc/osc_global_observer.cc index 2f3cbeb8a6..7797f9f259 100644 --- a/libs/surfaces/osc/osc_global_observer.cc +++ b/libs/surfaces/osc/osc_global_observer.cc @@ -123,7 +123,7 @@ OSCGlobalObserver::OSCGlobalObserver (OSC& o, Session& s, ArdourSurface::OSC::OS _osc.SoloActive().connect(session_connections, MISSING_INVALIDATOR, boost::bind (&OSCGlobalObserver::solo_active, this, _1), OSC::instance()); solo_active (session->soloing() || session->listening()); - boost::shared_ptr click_controllable = boost::dynamic_pointer_cast(session->click_gain()->gain_control()); + boost::shared_ptr click_controllable = boost::dynamic_pointer_cast(_osc.click_gain()->gain_control()); click_controllable->Changed.connect (strip_connections, MISSING_INVALIDATOR, boost::bind (&OSCGlobalObserver::send_change_message, this, X_("/click/level"), click_controllable), OSC::instance()); send_change_message (X_("/click/level"), click_controllable); diff --git a/libs/surfaces/push2/push2.cc b/libs/surfaces/push2/push2.cc index 43b3766f5a..468565697c 100644 --- a/libs/surfaces/push2/push2.cc +++ b/libs/surfaces/push2/push2.cc @@ -1041,7 +1041,7 @@ Push2::other_vpot (int n, int delta) break; case 1: /* metronome gain control */ - click_gain = _session->click_gain(); + click_gain = this->click_gain(); if (click_gain) { boost::shared_ptr ac = click_gain->gain_control(); if (ac) {