summaryrefslogtreecommitdiff
path: root/gtk2_ardour/rc_option_editor.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-01-04 20:52:30 +0000
committerCarl Hetherington <carl@carlh.net>2011-01-04 20:52:30 +0000
commit75b1f698a1d328e25a566fe591c673c421e5459c (patch)
tree7c30e90bcb896c182dee26679d51b3432566d4c3 /gtk2_ardour/rc_option_editor.cc
parent69aa1060509001750be9e1b39b521348d13befb8 (diff)
Disable solo-controls-are-listen-controls if we don't have a monitor bus. Should fix #3660.
git-svn-id: svn://localhost/ardour2/branches/3.0@8436 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/rc_option_editor.cc')
-rw-r--r--gtk2_ardour/rc_option_editor.cc43
1 files changed, 30 insertions, 13 deletions
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index 72229572a2..4a70586e55 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -1212,26 +1212,29 @@ RCOptionEditor::RCOptionEditor ()
sigc::mem_fun (*_rc_config, &RCConfiguration::get_solo_mute_gain),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_mute_gain)
));
-
- add_option (_("Solo / mute"),
- new BoolOption (
- "solo-control-is-listen-control",
- _("Solo controls are Listen controls"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_solo_control_is_listen_control),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_control_is_listen_control)
- ));
- ComboOption<ListenPosition>* lp = new ComboOption<ListenPosition> (
+ _solo_control_is_listen_control = new BoolOption (
+ "solo-control-is-listen-control",
+ _("Solo controls are Listen controls"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_solo_control_is_listen_control),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_control_is_listen_control)
+ );
+
+ add_option (_("Solo / mute"), _solo_control_is_listen_control);
+
+ _listen_position = new ComboOption<ListenPosition> (
"listen-position",
_("Listen Position"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_listen_position),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_listen_position)
);
- lp->add (AfterFaderListen, _("after-fader listen"));
- lp->add (PreFaderListen, _("pre-fader listen"));
+ _listen_position->add (AfterFaderListen, _("after-fader listen"));
+ _listen_position->add (PreFaderListen, _("pre-fader listen"));
+
+ add_option (_("Solo / mute"), _listen_position);
- add_option (_("Solo / mute"), lp);
+ parameter_changed ("use-monitor-bus");
add_option (_("Solo / mute"),
new BoolOption (
@@ -1389,4 +1392,18 @@ RCOptionEditor::RCOptionEditor ()
add_option (_("Keyboard"), new KeyboardOptions);
}
-
+void
+RCOptionEditor::parameter_changed (string const & p)
+{
+ OptionEditor::parameter_changed (p);
+
+ if (p == "use-monitor-bus") {
+ bool const s = Config->get_use_monitor_bus ();
+ if (!s) {
+ /* we can't use this if we don't have a monitor bus */
+ Config->set_solo_control_is_listen_control (false);
+ }
+ _solo_control_is_listen_control->set_sensitive (s);
+ _listen_position->set_sensitive (s);
+ }
+}