From d116af22db3c0e0cf6aeff6194a689d8bfad7c8c Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 27 Jan 2011 18:48:33 +0000 Subject: virtualize the way that AutomationController gets strings to display values, so that we can callback through the owner of an AutomationControl, not just rely on the value from the AutomationControl; make pan automation tracks use this to display more audio-centric values git-svn-id: svn://localhost/ardour2/branches/3.0@8590 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/automation_controller.cc | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) (limited to 'gtk2_ardour/automation_controller.cc') diff --git a/gtk2_ardour/automation_controller.cc b/gtk2_ardour/automation_controller.cc index f09fae905b..540612c8d4 100644 --- a/gtk2_ardour/automation_controller.cc +++ b/gtk2_ardour/automation_controller.cc @@ -19,6 +19,7 @@ */ #include +#include #include "pbd/error.h" @@ -40,10 +41,10 @@ using namespace ARDOUR; using namespace Gtk; - -AutomationController::AutomationController(boost::shared_ptr ac, Adjustment* adj) +AutomationController::AutomationController(boost::shared_ptr owner, boost::shared_ptr ac, Adjustment* adj) : BarController (*adj, ac) , _ignore_change(false) + , _owner (owner) , _controllable(ac) , _adjustment(adj) { @@ -80,30 +81,18 @@ AutomationController::create( } else { assert(ac->parameter() == param); } - return boost::shared_ptr(new AutomationController(ac, adjustment)); + return boost::shared_ptr(new AutomationController(parent, ac, adjustment)); } std::string AutomationController::get_label (int&) { - std::stringstream s; - - // Hack to display CC rounded to int - if (_controllable->parameter().type() == MidiCCAutomation) { - s << (int)_controllable->get_value(); - } else { - s << std::fixed << std::setprecision(3) << _controllable->get_value(); - } - - return s.str (); + return _owner->value_as_string (_controllable); } void AutomationController::display_effective_value() { - //if ( ! _controllable->list()->automation_playback()) - // return; - float value = _controllable->get_value(); if (_adjustment->get_value() != value) { -- cgit v1.2.3