From efb63e1bf29b131978b30b23304dfc276af70a8d Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 21 Mar 2020 18:20:54 +0100 Subject: Pan: remove value-as-string indirection --- libs/ardour/ardour/pannable.h | 1 - libs/ardour/ardour/panner.h | 5 ++++- libs/ardour/pan_controllable.cc | 4 ++-- libs/ardour/pannable.cc | 12 ------------ libs/ardour/panner.cc | 6 ------ 5 files changed, 6 insertions(+), 22 deletions(-) diff --git a/libs/ardour/ardour/pannable.h b/libs/ardour/ardour/pannable.h index d282ff7dde..417530e43f 100644 --- a/libs/ardour/ardour/pannable.h +++ b/libs/ardour/ardour/pannable.h @@ -64,7 +64,6 @@ public: return ((_auto_state & Write) || ((_auto_state & (Touch | Latch)) && touching())); } - std::string value_as_string (boost::shared_ptr) const; void start_touch (double when); void stop_touch (double when); diff --git a/libs/ardour/ardour/panner.h b/libs/ardour/ardour/panner.h index c2af287098..ad6977a480 100644 --- a/libs/ardour/ardour/panner.h +++ b/libs/ardour/ardour/panner.h @@ -57,6 +57,7 @@ class Pannable; class BufferSet; class AudioBuffer; class Speakers; +class PanControllable; class LIBARDOUR_API Panner : public PBD::Stateful, public PBD::ScopedConnectionList { @@ -111,7 +112,6 @@ public: virtual std::set what_can_be_automated() const; virtual std::string describe_parameter (Evoral::Parameter); - virtual std::string value_as_string (boost::shared_ptr) const; bool touching() const; @@ -145,8 +145,11 @@ public: virtual void thaw (); protected: + friend PanControllable; boost::shared_ptr _pannable; + virtual std::string value_as_string (boost::shared_ptr) const = 0; + virtual void distribute_one (AudioBuffer&, BufferSet& obufs, gain_t gain_coeff, pframes_t nframes, uint32_t which) = 0; virtual void distribute_one_automated (AudioBuffer&, BufferSet& obufs, samplepos_t start, samplepos_t end, pframes_t nframes, diff --git a/libs/ardour/pan_controllable.cc b/libs/ardour/pan_controllable.cc index 5b257158fe..2f9ca3e6a6 100644 --- a/libs/ardour/pan_controllable.cc +++ b/libs/ardour/pan_controllable.cc @@ -58,12 +58,12 @@ PanControllable::actually_set_value (double v, Controllable::GroupControlDisposi std::string PanControllable::get_user_string () const { - if (!owner) { + if (!owner || !owner->panner()) { /* assume PanAzimuthAutomation, 0..1 */ float v = get_value (); char buf[32]; snprintf(buf, sizeof(buf), "%.0f%%", 100.f * v); return buf; } - return owner->value_as_string (boost::dynamic_pointer_cast(shared_from_this())); + return owner->panner()->value_as_string (boost::dynamic_pointer_cast(shared_from_this())); } diff --git a/libs/ardour/pannable.cc b/libs/ardour/pannable.cc index 595c2f7ce9..f0ee102ec2 100644 --- a/libs/ardour/pannable.cc +++ b/libs/ardour/pannable.cc @@ -256,15 +256,3 @@ Pannable::set_state (const XMLNode& root, int version) return 0; } - -string -Pannable::value_as_string (boost::shared_ptr ac) const -{ - boost::shared_ptr p = panner (); - - if (p) { - return p->value_as_string (ac); - } - - return ARDOUR::value_as_string(ac->desc(), ac->get_value()); -} diff --git a/libs/ardour/panner.cc b/libs/ardour/panner.cc index dd7576bb45..28d862d2db 100644 --- a/libs/ardour/panner.cc +++ b/libs/ardour/panner.cc @@ -98,12 +98,6 @@ Panner::describe_parameter (Evoral::Parameter p) return _pannable->describe_parameter (p); } -string -Panner::value_as_string (boost::shared_ptr ac) const -{ - return _pannable->value_as_string (ac); -} - int Panner::set_state (XMLNode const &, int) { -- cgit v1.2.3