- char buf[32];
-
- if (original == fraction) {
- return "0";
- }
-
- if (_uses_gain_mapping) {
- if (original == 0.0) {
- /* there is no sensible representation of a relative
- change from -inf dB, so return an empty string.
- */
- return "";
- } else if (fraction == 0.0) {
- snprintf (buf, sizeof (buf), "-inf");
- } else {
- double old_db = accurate_coefficient_to_dB (slider_position_to_gain_with_max (original, Config->get_max_gain()));
- double new_db = accurate_coefficient_to_dB (slider_position_to_gain_with_max (fraction, Config->get_max_gain()));
- snprintf (buf, sizeof (buf), "%.1f", new_db - old_db);
- }
+ if (!get_uses_gain_mapping () && _desc.logarithmic) {
+ return "x " + ARDOUR::value_as_string (_desc, delta);