summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/amp.cc13
-rw-r--r--libs/ardour/ardour/amp.h2
-rw-r--r--libs/ardour/ardour/monitor_processor.h11
-rw-r--r--libs/ardour/ardour/proxy_controllable.h9
4 files changed, 35 insertions, 0 deletions
diff --git a/libs/ardour/amp.cc b/libs/ardour/amp.cc
index 29032525f2..2265c6de03 100644
--- a/libs/ardour/amp.cc
+++ b/libs/ardour/amp.cc
@@ -426,6 +426,19 @@ Amp::GainControl::internal_to_user (double v) const
return accurate_coefficient_to_dB (v);
}
+double
+Amp::GainControl::user_to_internal (double u) const
+{
+ return dB_to_coefficient (u);
+}
+
+std::string
+Amp::GainControl::get_user_string () const
+{
+ char theBuf[32]; sprintf( theBuf, "%3.1f dB", accurate_coefficient_to_dB (get_value()));
+ return std::string(theBuf);
+}
+
/** Write gain automation for this cycle into the buffer previously passed in to
* set_gain_automation_buffer (if we are in automation playback mode and the
* transport is rolling).
diff --git a/libs/ardour/ardour/amp.h b/libs/ardour/ardour/amp.h
index f6a15666e9..c0e9dbc5b5 100644
--- a/libs/ardour/ardour/amp.h
+++ b/libs/ardour/ardour/amp.h
@@ -90,6 +90,8 @@ public:
double internal_to_interface (double) const;
double interface_to_internal (double) const;
double internal_to_user (double) const;
+ double user_to_internal (double) const;
+ std::string get_user_string () const;
Amp* _amp;
};
diff --git a/libs/ardour/ardour/monitor_processor.h b/libs/ardour/ardour/monitor_processor.h
index 33b3e9c366..2fe108a427 100644
--- a/libs/ardour/ardour/monitor_processor.h
+++ b/libs/ardour/ardour/monitor_processor.h
@@ -32,6 +32,8 @@
#include "ardour/types.h"
#include "ardour/processor.h"
+#include "ardour/dB.h"
+
class XMLNode;
namespace ARDOUR {
@@ -63,6 +65,15 @@ public:
return (float) _value;
}
+ double internal_to_user (double i) const { return accurate_coefficient_to_dB (i);}
+ double user_to_internal (double u) const { return dB_to_coefficient(u) ;}
+
+ std::string get_user_string () const
+ {
+ char theBuf[32]; sprintf( theBuf, "%3.1f dB", accurate_coefficient_to_dB (get_value()));
+ return std::string(theBuf);
+ }
+
double lower () const { return _lower; }
double upper () const { return _upper; }
diff --git a/libs/ardour/ardour/proxy_controllable.h b/libs/ardour/ardour/proxy_controllable.h
index 066f2aac81..522c3a2794 100644
--- a/libs/ardour/ardour/proxy_controllable.h
+++ b/libs/ardour/ardour/proxy_controllable.h
@@ -43,6 +43,15 @@ public:
void set_value (double v) { if (_setter (v)) { Changed(); /* EMIT SIGNAL */ } }
double get_value () const { return _getter (); }
+ double internal_to_user (double i) const { return accurate_coefficient_to_dB (i);}
+ double user_to_internal (double u) const { return dB_to_coefficient(u) ;}
+
+ std::string get_user_string () const
+ {
+ char theBuf[32]; sprintf( theBuf, "%3.1f dB", accurate_coefficient_to_dB (get_value()));
+ return std::string(theBuf);
+ }
+
private:
boost::function1<bool,double> _setter;
boost::function0<double> _getter;