summaryrefslogtreecommitdiff
path: root/libs/ardour/automatable.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-01-27 18:48:33 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-01-27 18:48:33 +0000
commitd116af22db3c0e0cf6aeff6194a689d8bfad7c8c (patch)
treec3d9888d5020d8e6bf02532ea06adc388d9033f5 /libs/ardour/automatable.cc
parent85e8be3fa4f4910907d731a4591bf5e7d5135ca6 (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.cc20
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 ();
+}