diff options
author | Robin Gareus <robin@gareus.org> | 2014-11-18 03:49:20 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-11-18 03:49:20 +0100 |
commit | 37937d9c698e5fe9ce0f1857f3256dead43f3ebc (patch) | |
tree | 2e9fcd6f187102eedecf028e71d9d30e1a348606 | |
parent | 5e90b97c428664779fe51d3a5171d1d4718ba800 (diff) |
synchronize preferences and monitor-section
-rw-r--r-- | gtk2_ardour/monitor_section.cc | 16 | ||||
-rw-r--r-- | libs/ardour/session_state.cc | 2 |
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") { |