diff options
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/amp.cc | 13 | ||||
-rw-r--r-- | libs/ardour/ardour/amp.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/monitor_processor.h | 11 | ||||
-rw-r--r-- | libs/ardour/ardour/proxy_controllable.h | 9 |
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; |