summaryrefslogtreecommitdiff
path: root/gtk2_ardour/monitor_section.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-11-18 03:49:20 +0100
committerRobin Gareus <robin@gareus.org>2014-11-18 03:49:20 +0100
commit37937d9c698e5fe9ce0f1857f3256dead43f3ebc (patch)
tree2e9fcd6f187102eedecf028e71d9d30e1a348606 /gtk2_ardour/monitor_section.cc
parent5e90b97c428664779fe51d3a5171d1d4718ba800 (diff)
synchronize preferences and monitor-section
Diffstat (limited to 'gtk2_ardour/monitor_section.cc')
-rw-r--r--gtk2_ardour/monitor_section.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/gtk2_ardour/monitor_section.cc b/gtk2_ardour/monitor_section.cc
index d92b9e96a3..483933ec5d 100644
--- a/gtk2_ardour/monitor_section.cc
+++ b/gtk2_ardour/monitor_section.cc
@@ -1068,6 +1068,14 @@ MonitorSection::cancel_audition (GdkEventButton*)
return true;
}
+#define SYNCHRONIZE_TOGGLE_ACTION(action, value) \
+ if (action) { \
+ Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(action); \
+ if (tact && tact->get_active() != value) { \
+ tact->set_active(value); \
+ } \
+ }
+
void
MonitorSection::parameter_changed (std::string name)
{
@@ -1075,6 +1083,14 @@ MonitorSection::parameter_changed (std::string name)
update_solo_model ();
} else if (name == "listen-position") {
update_solo_model ();
+ } else if (name == "solo-mute-override") {
+ SYNCHRONIZE_TOGGLE_ACTION(
+ ActionManager::get_action (X_("Monitor"), "toggle-mute-overrides-solo"),
+ Config->get_solo_mute_override ())
+ } else if (name == "exclusive-solo") {
+ SYNCHRONIZE_TOGGLE_ACTION(
+ ActionManager::get_action (X_("Monitor"), "toggle-exclusive-solo"),
+ Config->get_exclusive_solo ())
}
}