X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui_options.cc;h=365810df75f0c3b3fc48d337958bdbddfb4bb995;hb=ecb92f474f8f39e04f2aee02dabab7fa03af6c19;hp=f211e429568f59e657133b86515732a229cac182;hpb=5792674ca4d02e093b4318d31a117a47ae72ecdf;p=ardour.git diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc index f211e42956..365810df75 100644 --- a/gtk2_ardour/ardour_ui_options.cc +++ b/gtk2_ardour/ardour_ui_options.cc @@ -29,6 +29,8 @@ #include "ardour/rc_configuration.h" #include "ardour/session.h" +#include "canvas/wave_view.h" + #include "audio_clock.h" #include "ardour_ui.h" #include "actions.h" @@ -307,8 +309,6 @@ ARDOUR_UI::setup_session_options () void ARDOUR_UI::parameter_changed (std::string p) { - ENSURE_GUI_THREAD (*this, &ARDOUR_UI::parameter_changed, p) - if (p == "external-sync") { ActionManager::map_some_state ("Transport", "ToggleExternalSync", sigc::mem_fun (_session->config, &SessionConfiguration::get_external_sync)); @@ -399,18 +399,31 @@ ARDOUR_UI::parameter_changed (std::string p) } else if (p == "super-rapid-clock-update") { stop_clocking (); start_clocking (); + } else if (p == "waveform-gradient-depth") { + ArdourCanvas::WaveView::set_global_gradient_depth (config()->get_waveform_gradient_depth()); } else if (p == "show-editor-meter") { bool show = Config->get_show_editor_meter(); - transport_tearoff_hbox.remove (meter_box); - transport_tearoff_hbox.remove (editor_meter_peak_display); + if (editor_meter) { + if (meter_box.get_parent()) { + transport_tearoff_hbox.remove (meter_box); + transport_tearoff_hbox.remove (editor_meter_peak_display); + } - if (editor_meter && show) { - transport_tearoff_hbox.pack_start (meter_box, false, false); - transport_tearoff_hbox.pack_start (editor_meter_peak_display, false, false); - meter_box.show(); - editor_meter_peak_display.show(); + if (show) { + transport_tearoff_hbox.pack_start (meter_box, false, false); + transport_tearoff_hbox.pack_start (editor_meter_peak_display, false, false); + meter_box.show(); + editor_meter_peak_display.show(); + } } + } else if (p == "waveform-scale") { + ArdourCanvas::WaveView::set_global_logscaled (Config->get_waveform_scale() == Logarithmic); + } else if (p == "waveform-shape") { + ArdourCanvas::WaveView::set_global_shape (Config->get_waveform_shape() == Rectified + ? ArdourCanvas::WaveView::Rectified : ArdourCanvas::WaveView::Normal); + } else if (p == "show-waveform-clipping") { + ArdourCanvas::WaveView::set_global_show_waveform_clipping (ARDOUR_UI::config()->get_show_waveform_clipping()); } }