provide access to Send + Plugins from MIDI binding maps
[ardour.git] / libs / ardour / ardour / utils.h
index c43b7ed37e0581321e11bce57c3f74f4a5bb18ce..e68f7a01df5bc012bc6f81e1fd661714051f4ad6 100644 (file)
@@ -62,13 +62,29 @@ bool path_is_paired (Glib::ustring path, Glib::ustring& pair_base);
 
 void compute_equal_power_fades (ARDOUR::nframes_t nframes, float* in, float* out);
 
-const char* slave_source_to_string (ARDOUR::SlaveSource src);
-ARDOUR::SlaveSource string_to_slave_source (std::string str);
+const char* sync_source_to_string (ARDOUR::SyncSource src);
+ARDOUR::SyncSource string_to_sync_source (std::string str);
 
 const char* edit_mode_to_string (ARDOUR::EditMode);
 ARDOUR::EditMode string_to_edit_mode (std::string);
 
 
+static inline double
+gain_to_slider_position (ARDOUR::gain_t g)
+{
+       if (g == 0) return 0;
+       return pow((6.0*log(g)/log(2.0)+192.0)/198.0, 8.0);
+
+}
+
+static inline ARDOUR::gain_t
+slider_position_to_gain (double pos)
+{
+       /* XXX Marcus writes: this doesn't seem right to me. but i don't have a better answer ... */
+       if (pos == 0.0) return 0;
+       return pow (2.0,(sqrt(sqrt(sqrt(pos)))*198.0-192.0)/6.0);
+}
+
 /* I don't really like hard-coding these falloff rates here
  * Probably should use a map of some kind that could be configured
  * These rates are db/sec.