diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-12-30 17:21:36 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-12-30 17:21:36 -0500 |
commit | 859bf5257cecf75667ed806f1e324f248c29473a (patch) | |
tree | fee3cef44e6fcd5c04e39746080cce85c1a3571d /gtk2_ardour/rc_option_editor.cc | |
parent | 501bfdb15a742622b916c1cd8fa4cc658e5ee773 (diff) |
add preferences slider for waveview clip level (not working just right yet)
Diffstat (limited to 'gtk2_ardour/rc_option_editor.cc')
-rw-r--r-- | gtk2_ardour/rc_option_editor.cc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index 3a5cab0289..815c7f4e7e 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -37,6 +37,8 @@ #include "ardour/control_protocol_manager.h" #include "control_protocol/control_protocol.h" +#include "canvas/wave_view.h" + #include "ardour_window.h" #include "ardour_dialog.h" #include "gui_thread.h" @@ -569,6 +571,56 @@ private: HScale _dpi_slider; }; +class ClipLevelOptions : public OptionEditorBox +{ +public: + ClipLevelOptions (RCConfiguration* c) + : _rc_config (c) + , _clip_level_adjustment (0, -128.0, 2.0, 0.1, 1.0) /* units of dB */ + , _clip_level_slider (_clip_level_adjustment) + { + _clip_level_adjustment.set_value (_rc_config->get_waveform_clip_level ()); + + Label* l = manage (new Label (_("Waveform Clip Level (dBFS):"))); + l->set_name ("OptionsLabel"); + + _clip_level_slider.set_update_policy (UPDATE_DISCONTINUOUS); + HBox* h = manage (new HBox); + h->set_spacing (4); + h->pack_start (*l, false, false); + h->pack_start (_clip_level_slider, true, true); + + _box->pack_start (*h, false, false); + + _clip_level_adjustment.signal_value_changed().connect (sigc::mem_fun (*this, &ClipLevelOptions::clip_level_changed)); + } + + void parameter_changed (string const & p) + { + if (p == "waveform-clip-level") { + _clip_level_adjustment.set_value (_rc_config->get_waveform_clip_level()); + } + } + + void set_state_from_config () + { + parameter_changed ("waveform-clip-level"); + } + +private: + + void clip_level_changed () + { + _rc_config->set_waveform_clip_level (_clip_level_adjustment.get_value()); + /* XXX: should be triggered from the parameter changed signal */ + ArdourCanvas::WaveView::set_clip_level (_clip_level_adjustment.get_value()); + } + + RCConfiguration* _rc_config; + Adjustment _clip_level_adjustment; + HScale _clip_level_slider; +}; + class BufferingOptions : public OptionEditorBox { public: @@ -1394,6 +1446,8 @@ RCOptionEditor::RCOptionEditor () add_option (_("Editor"), wfsh); + add_option (_("Editor"), new ClipLevelOptions (_rc_config)); + add_option (_("Editor"), new BoolOption ( "show-waveforms-while-recording", |