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 /libs/ardour/automatable.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 'libs/ardour/automatable.cc')
-rw-r--r-- | libs/ardour/automatable.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libs/ardour/automatable.cc b/libs/ardour/automatable.cc index 0d24135710..20dc910f61 100644 --- a/libs/ardour/automatable.cc +++ b/libs/ardour/automatable.cc @@ -492,3 +492,23 @@ Automatable::clear_controls () _control_connections.drop_connections (); ControlSet::clear_controls (); } + +string +Automatable::value_as_string (boost::shared_ptr<AutomationControl> ac) const +{ + std::stringstream s; + + /* this is a the default fallback for this virtual method. Derived Automatables + are free to override this to display the values of their parameters/controls + in different ways. + */ + + // Hack to display CC as integer value, rather than double + if (ac->parameter().type() == MidiCCAutomation) { + s << lrint (ac->get_value()); + } else { + s << std::fixed << std::setprecision(3) << ac->get_value(); + } + + return s.str (); +} |