diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-01-27 18:48:33 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-01-27 18:48:33 +0000 |
commit | d116af22db3c0e0cf6aeff6194a689d8bfad7c8c (patch) | |
tree | c3d9888d5020d8e6bf02532ea06adc388d9033f5 /gtk2_ardour/automation_controller.cc | |
parent | 85e8be3fa4f4910907d731a4591bf5e7d5135ca6 (diff) |
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
Diffstat (limited to 'gtk2_ardour/automation_controller.cc')
-rw-r--r-- | gtk2_ardour/automation_controller.cc | 21 |
1 files changed, 5 insertions, 16 deletions
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 <iomanip> +#include <cmath> #include "pbd/error.h" @@ -40,10 +41,10 @@ using namespace ARDOUR; using namespace Gtk; - -AutomationController::AutomationController(boost::shared_ptr<AutomationControl> ac, Adjustment* adj) +AutomationController::AutomationController(boost::shared_ptr<Automatable> owner, boost::shared_ptr<AutomationControl> 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<AutomationController>(new AutomationController(ac, adjustment)); + return boost::shared_ptr<AutomationController>(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) { |