From 94880f7cd1417031387b485e279c32eea885cf6d Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 24 Jun 2009 02:37:00 +0000 Subject: add visual display of solo cut, change labels for solo stuff git-svn-id: svn://localhost/ardour2/branches/3.0@5267 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/rc_option_editor.cc | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index 6e2d4cbbf5..bddc9d5b07 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -773,15 +773,18 @@ public: false)); - _db_adjustment.set_value (gain_to_slider_position (_rc_config->get_solo_mute_gain ())); - - Label* l = manage (new Label (_("Solo-in-front gain cut:"))); + parameter_changed ("solo-mute-gain"); + + Label* l = manage (new Label (_("Solo mute cut (dB):"))); l->set_name ("OptionsLabel"); HBox* h = manage (new HBox); h->set_spacing (4); h->pack_start (*l, false, false); - h->pack_start (*_db_slider, true, true); + h->pack_start (*_db_slider, false, false); + h->pack_start (_db_display, false, false); + + set_size_request_to_display_given_text (_db_display, "-99.0", 12, 12); _box->pack_start (*h, false, false); @@ -791,7 +794,19 @@ public: void parameter_changed (string const & p) { if (p == "solo-mute-gain") { - _db_adjustment.set_value (gain_to_slider_position (_rc_config->get_solo_mute_gain())); + gain_t val = _rc_config->get_solo_mute_gain(); + + _db_adjustment.set_value (gain_to_slider_position (val)); + + char buf[16]; + + if (val == 0.0) { + snprintf (buf, sizeof (buf), "-inf"); + } else { + snprintf (buf, sizeof (buf), "%.2f", coefficient_to_dB (val)); + } + + _db_display.set_text (buf); } } @@ -811,6 +826,7 @@ private: Adjustment _db_adjustment; Gtkmm2ext::HSliderController* _db_slider; Glib::RefPtr pix; + Entry _db_display; }; @@ -1144,18 +1160,17 @@ RCOptionEditor::RCOptionEditor () ComboOption* sm = new ComboOption ( "solo-model", - _("Solo"), + _("Solo button controls"), mem_fun (*_rc_config, &RCConfiguration::get_solo_model), mem_fun (*_rc_config, &RCConfiguration::set_solo_model) ); - add_option (_("Audio"), new SoloMuteOptions (_rc_config)); - - sm->add (SoloInPlace, _("in place")); + sm->add (SoloInPlace, _("solo in place")); sm->add (SoloAFL, _("post-fader listen via monitor bus")); sm->add (SoloPFL, _("pre-fader listen via monitor bus")); add_option (_("Audio"), sm); + add_option (_("Audio"), new SoloMuteOptions (_rc_config)); add_option (_("Audio"), new BoolOption ( -- cgit v1.2.3