From 55094b723774086d0f54d688b1ca73a4df82b93e Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 12 Jan 2016 22:04:18 -0500 Subject: move Amp::GainControl out into its own source module and out of Amp --- libs/ardour/ardour/amp.h | 28 ++++---------------- libs/ardour/ardour/gain_control.h | 55 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 23 deletions(-) create mode 100644 libs/ardour/ardour/gain_control.h (limited to 'libs/ardour/ardour') diff --git a/libs/ardour/ardour/amp.h b/libs/ardour/ardour/amp.h index 108694de90..bd4c8b1259 100644 --- a/libs/ardour/ardour/amp.h +++ b/libs/ardour/ardour/amp.h @@ -29,6 +29,7 @@ namespace ARDOUR { class BufferSet; +class GainControl; class IO; /** Applies a declick operation to all audio inputs, passing the same number of @@ -76,32 +77,13 @@ public: static void update_meters(); - /* automation */ - struct GainControl : public AutomationControl { - GainControl (Session& session, const Evoral::Parameter ¶m, - boost::shared_ptr al = boost::shared_ptr()); - - void set_value (double val, PBD::Controllable::GroupControlDisposition group_override); - void set_value_unchecked (double); - - double internal_to_interface (double) const; - double interface_to_internal (double) const; - double internal_to_user (double) const; - double user_to_internal (double) const; - std::string get_user_string () const; - - double lower_db; - double range_db; - }; - - - boost::shared_ptr gain_control() { - return boost::dynamic_pointer_cast (_gain_control); + boost::shared_ptr gain_control() { + return _gain_control; } - boost::shared_ptr gain_control() const { - return boost::dynamic_pointer_cast (_gain_control); + boost::shared_ptr gain_control() const { + return _gain_control; } std::string value_as_string (boost::shared_ptr) const; diff --git a/libs/ardour/ardour/gain_control.h b/libs/ardour/ardour/gain_control.h new file mode 100644 index 0000000000..17c250151a --- /dev/null +++ b/libs/ardour/ardour/gain_control.h @@ -0,0 +1,55 @@ +/* + Copyright (C) 2006-2016 Paul Davis + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef __ardour_gain_control_h__ +#define __ardour_gain_control_h__ + +#include +#include + +#include "pbd/controllable.h" + +#include "evoral/Parameter.hpp" + +#include "ardour/automation_control.h" +#include "ardour/libardour_visibility.h" + +namespace ARDOUR { + +class Session; + +struct LIBARDOUR_API GainControl : public AutomationControl { + GainControl (Session& session, const Evoral::Parameter ¶m, + boost::shared_ptr al = boost::shared_ptr()); + + void set_value (double val, PBD::Controllable::GroupControlDisposition group_override); + void set_value_unchecked (double); + + double internal_to_interface (double) const; + double interface_to_internal (double) const; + double internal_to_user (double) const; + double user_to_internal (double) const; + std::string get_user_string () const; + + double lower_db; + double range_db; +}; + +} /* namespace */ + +#endif /* __ardour_gain_control_h__ */ -- cgit v1.2.3