summaryrefslogtreecommitdiff
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
parent5e90b97c428664779fe51d3a5171d1d4718ba800 (diff)
synchronize preferences and monitor-section
-rw-r--r--gtk2_ardour/monitor_section.cc16
-rw-r--r--libs/ardour/session_state.cc2
2 files changed, 18 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 ())
}
}
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 539facc784..0fb5171882 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -3497,6 +3497,8 @@ Session::config_changed (std::string p, bool ours)
listen_position_changed ();
} else if (p == "solo-control-is-listen-control") {
solo_control_mode_changed ();
+ } else if (p == "solo-mute-gain") {
+ _solo_cut_control->Changed();
} else if (p == "timecode-offset" || p == "timecode-offset-negative") {
last_timecode_valid = false;
} else if (p == "playback-buffer-seconds") {