diff --git a/gtk2_ardour/icons/preference_general_preferences_dropdown.png b/gtk2_ardour/icons/preference_general_preferences_dropdown.png
new file mode 100644
index 0000000000..006a677209
Binary files /dev/null and b/gtk2_ardour/icons/preference_general_preferences_dropdown.png differ
diff --git a/gtk2_ardour/icons/preference_general_preferences_dropdown_active.png b/gtk2_ardour/icons/preference_general_preferences_dropdown_active.png
new file mode 100644
index 0000000000..b28303f04d
Binary files /dev/null and b/gtk2_ardour/icons/preference_general_preferences_dropdown_active.png differ
diff --git a/gtk2_ardour/tracks_control_panel.cc b/gtk2_ardour/tracks_control_panel.cc
index 382da766ac..967cf9181b 100644
--- a/gtk2_ardour/tracks_control_panel.cc
+++ b/gtk2_ardour/tracks_control_panel.cc
@@ -61,16 +61,25 @@ TracksControlPanel::TracksControlPanel ()
, _obey_mmc_commands_button (get_waves_button ("obey_mmc_commands_button"))
, _send_mmc_commands_button (get_waves_button ("send_mmc_commands_button"))
, _send_mmc_feedback_button (get_waves_button ("send_mmc_feedback_button"))
+ , _dc_bias_against_denormals_button (get_waves_button ("dc_bias_against_denormals_button"))
+ , _copy_imported_files_button (get_waves_button ("copy_imported_files_button"))
, _inbound_mmc_device_spinbutton (get_spin_button ("inbound_mmc_device_spinbutton"))
, _outbound_mmc_device_spinbutton (get_spin_button ("outbound_mmc_device_spinbutton"))
+ , _limit_undo_history_spinbutton (get_spin_button ("limit_undo_history_spinbutton"))
+ , _save_undo_history_spinbutton (get_spin_button ("save_undo_history_spinbutton"))
, _file_type_dropdown (get_waves_dropdown ("file_type_dropdown"))
, _bit_depth_dropdown (get_waves_dropdown ("bit_depth_dropdown"))
, _frame_rate_dropdown (get_waves_dropdown ("frame_rate_dropdown"))
- , _browse_button(get_waves_button("browse_default_folder"))
- , _auto_lock_timer_dropdown(get_waves_dropdown("auto_lock_timer_dropdown"))
- , _auto_save_timer_dropdown(get_waves_dropdown("auto_save_timer_dropdown"))
- , _pre_record_buffer_dropdown(get_waves_dropdown("pre_record_buffer_dropdown"))
- , _waveform_shape_dropdown(get_waves_dropdown ("waveform_shape_dropdown"))
+ , _browse_button (get_waves_button("browse_default_folder"))
+ , _auto_lock_timer_dropdown (get_waves_dropdown("auto_lock_timer_dropdown"))
+ , _auto_save_timer_dropdown (get_waves_dropdown("auto_save_timer_dropdown"))
+ , _pre_record_buffer_dropdown (get_waves_dropdown("pre_record_buffer_dropdown"))
+ , _waveform_shape_dropdown (get_waves_dropdown ("waveform_shape_dropdown"))
+ , _peak_hold_time_dropdown (get_waves_dropdown ("peak_hold_time_dropdown"))
+ , _dpm_fall_off_dropdown (get_waves_dropdown ("dpm_fall_off_dropdown"))
+ , _recording_seconds_dropdown (get_waves_dropdown ("recording_seconds_dropdown"))
+ , _playback_seconds_dropdown (get_waves_dropdown ("playback_seconds_dropdown"))
+
, _have_control (false)
, _ignore_changes (0)
{
diff --git a/gtk2_ardour/tracks_control_panel.h b/gtk2_ardour/tracks_control_panel.h
index 15f08ff450..3f1c5c84cd 100644
--- a/gtk2_ardour/tracks_control_panel.h
+++ b/gtk2_ardour/tracks_control_panel.h
@@ -74,8 +74,12 @@ class TracksControlPanel : public WavesDialog, public PBD::ScopedConnectionList
WavesButton& _obey_mmc_commands_button;
WavesButton& _send_mmc_commands_button;
WavesButton& _send_mmc_feedback_button;
+ WavesButton& _dc_bias_against_denormals_button;
+ WavesButton& _copy_imported_files_button;
Gtk::SpinButton& _inbound_mmc_device_spinbutton;
Gtk::SpinButton& _outbound_mmc_device_spinbutton;
+ Gtk::SpinButton& _limit_undo_history_spinbutton;
+ Gtk::SpinButton& _save_undo_history_spinbutton;
WavesDropdown& _engine_dropdown;
WavesDropdown& _device_dropdown;
WavesDropdown& _sample_rate_dropdown;
@@ -87,6 +91,11 @@ class TracksControlPanel : public WavesDialog, public PBD::ScopedConnectionList
WavesDropdown& _auto_save_timer_dropdown;
WavesDropdown& _pre_record_buffer_dropdown;
WavesDropdown& _waveform_shape_dropdown;
+ WavesDropdown& _peak_hold_time_dropdown;
+ WavesDropdown& _dpm_fall_off_dropdown;
+ WavesDropdown& _recording_seconds_dropdown;
+ WavesDropdown& _playback_seconds_dropdown;
+
Gtk::Label& _latency_label;
Gtk::Label& _default_open_path;
diff --git a/gtk2_ardour/tracks_control_panel.logic.cc b/gtk2_ardour/tracks_control_panel.logic.cc
index 8c79862bf8..edd1d5482b 100644
--- a/gtk2_ardour/tracks_control_panel.logic.cc
+++ b/gtk2_ardour/tracks_control_panel.logic.cc
@@ -902,18 +902,101 @@ void TracksControlPanel::display_general_preferences ()
dbg_msg ("TracksControlPanel::display_general_preferences ():\nUnexpected WaveFormShape !");
break;
}
+
+ float peak_hold_time = Config->get_meter_hold ();
+ int selected_item = 0;
+ if (peak_hold_time <= (MeterHoldOff + 0.1)) {
+ selected_item = 0;
+ } else if (peak_hold_time <= (MeterHoldShort + 0.1)) {
+ selected_item = 1;
+ } else if (peak_hold_time <= (MeterHoldMedium + 0.1)) {
+ selected_item = 2;
+ } else if (peak_hold_time <= (MeterHoldLong + 0.1)) {
+ selected_item = 3;
+ }
+ _peak_hold_time_dropdown.set_selected_item (selected_item);
+
+ float meter_falloff = Config->get_meter_falloff ();
+ selected_item = 0;
+
+ if (meter_falloff <= (METER_FALLOFF_OFF + 0.1)) {
+ selected_item = 0;
+ } else if (meter_falloff <= (METER_FALLOFF_SLOWEST + 0.1)) {
+ selected_item = 1;
+ } else if (meter_falloff <= (METER_FALLOFF_SLOW + 0.1)) {
+ selected_item = 2;
+ } else if (meter_falloff <= (METER_FALLOFF_SLOWISH + 0.1)) {
+ selected_item = 3;
+ } else if (meter_falloff <= (METER_FALLOFF_MODERATE + 0.1)) {
+ selected_item = 4;
+ } else if (meter_falloff <= (METER_FALLOFF_MEDIUM + 0.1)) {
+ selected_item = 5;
+ } else if (meter_falloff <= (METER_FALLOFF_FAST + 0.1)) {
+ selected_item = 6;
+ } else if (meter_falloff <= (METER_FALLOFF_FASTER + 0.1)) {
+ selected_item = 7;
+ } else if (meter_falloff <= (METER_FALLOFF_FASTEST + 0.1)) {
+ selected_item = 8;
+ }
+ _dpm_fall_off_dropdown.set_selected_item (selected_item);
+
+
+ long period = Config->get_audio_capture_buffer_seconds ();
+ selected_item = 0;
+
+ if (period <= 0.1) {
+ selected_item = 0;
+ } else if ((period <= 5.1)) {
+ selected_item = 1;
+ } else if ((period <= 10.1)) {
+ selected_item = 2;
+ } else if ((period <= 15.1)) {
+ selected_item = 3;
+ } else if ((period <= 30.1)) {
+ selected_item = 4;
+ } else if ((period <= 45.1)) {
+ selected_item = 5;
+ } else if ((period <= 60.1)) {
+ selected_item = 6;
+ }
+ _recording_seconds_dropdown.set_selected_item (selected_item);
+
+ period = Config->get_audio_playback_buffer_seconds ();
+ selected_item = 0;
+
+ if (period <= 0.1) {
+ selected_item = 0;
+ } else if ((period <= 5.1)) {
+ selected_item = 1;
+ } else if ((period <= 10.1)) {
+ selected_item = 2;
+ } else if ((period <= 15.1)) {
+ selected_item = 3;
+ } else if ((period <= 30.1)) {
+ selected_item = 4;
+ } else if ((period <= 45.1)) {
+ selected_item = 5;
+ } else if ((period <= 60.1)) {
+ selected_item = 6;
+ }
+ _playback_seconds_dropdown.set_selected_item (selected_item);
+
_obey_mmc_commands_button.set_active_state (Config->get_mmc_control () ? Gtkmm2ext::ExplicitActive : Gtkmm2ext::Off);
_send_mmc_commands_button.set_active_state (Config->get_send_mmc () ? Gtkmm2ext::ExplicitActive : Gtkmm2ext::Off);
_send_mmc_feedback_button.set_active_state (Config->get_midi_feedback () ? Gtkmm2ext::ExplicitActive : Gtkmm2ext::Off);
_inbound_mmc_device_spinbutton.set_value (Config->get_mmc_receive_device_id ());
_outbound_mmc_device_spinbutton.set_value (Config->get_mmc_send_device_id ());
+ _limit_undo_history_spinbutton.set_value (Config->get_history_depth ());
+ _save_undo_history_spinbutton.set_value (Config->get_saved_history_depth ());
+ _copy_imported_files_button.set_active_state (Config->get_only_copy_imported_files () ? Gtkmm2ext::ExplicitActive : Gtkmm2ext::Off);
+ _dc_bias_against_denormals_button.set_active_state (Config->get_denormal_protection () ? Gtkmm2ext::ExplicitActive : Gtkmm2ext::Off);
}
void TracksControlPanel::save_general_preferences ()
{
- int item = _waveform_shape_dropdown.get_selected_item ();
- switch (item) {
+ int selected_item = _waveform_shape_dropdown.get_selected_item ();
+ switch (selected_item) {
case 0:
Config->set_waveform_shape (Traditional);
break;
@@ -925,11 +1008,70 @@ void TracksControlPanel::save_general_preferences ()
break;
}
+ selected_item = _peak_hold_time_dropdown.get_selected_item ();
+ switch (selected_item) {
+ case 0:
+ Config->set_meter_hold (MeterHoldOff);
+ break;
+ case 1:
+ Config->set_meter_hold (MeterHoldShort);
+ break;
+ case 2:
+ Config->set_meter_hold (MeterHoldMedium);
+ break;
+ case 3:
+ Config->set_meter_hold (MeterHoldLong);
+ break;
+ default:
+ dbg_msg ("TracksControlPanel::general_preferences ():\nUnexpected peak hold time!");
+ break;
+ }
+
+ selected_item = _dpm_fall_off_dropdown.get_selected_item ();
+ switch (selected_item) {
+ case 0:
+ Config->set_meter_falloff (METER_FALLOFF_OFF);
+ break;
+ case 1:
+ Config->set_meter_falloff (METER_FALLOFF_SLOWEST);
+ break;
+ case 2:
+ Config->set_meter_falloff (METER_FALLOFF_SLOW);
+ break;
+ case 3:
+ Config->set_meter_falloff (METER_FALLOFF_SLOWISH);
+ break;
+ case 4:
+ Config->set_meter_falloff (METER_FALLOFF_MODERATE);
+ break;
+ case 5:
+ Config->set_meter_falloff (METER_FALLOFF_MEDIUM);
+ break;
+ case 6:
+ Config->set_meter_falloff (METER_FALLOFF_FAST);
+ break;
+ case 7:
+ Config->set_meter_falloff (METER_FALLOFF_FASTER);
+ break;
+ case 8:
+ Config->set_meter_falloff (METER_FALLOFF_FASTEST);
+ break;
+ default:
+ dbg_msg ("TracksControlPanel::general_preferences ():\nUnexpected meter fall off time!");
+ break;
+ }
+
Config->set_mmc_control (_obey_mmc_commands_button.active_state () == Gtkmm2ext::ExplicitActive);
Config->set_send_mmc (_send_mmc_commands_button.active_state () == Gtkmm2ext::ExplicitActive);
Config->set_midi_feedback (_send_mmc_feedback_button.active_state () == Gtkmm2ext::ExplicitActive);
+ Config->set_only_copy_imported_files (_copy_imported_files_button.active_state () == Gtkmm2ext::ExplicitActive);
+ Config->set_denormal_protection (_dc_bias_against_denormals_button.active_state () == Gtkmm2ext::ExplicitActive);
+
Config->set_mmc_receive_device_id (_inbound_mmc_device_spinbutton.get_value ());
Config->set_mmc_send_device_id (_outbound_mmc_device_spinbutton.get_value ());
+ Config->set_history_depth (_limit_undo_history_spinbutton.get_value ());
+ Config->set_saved_history_depth (_save_undo_history_spinbutton.get_value ());
+ Config->set_save_history (_save_undo_history_spinbutton.get_value () > 0);
}
@@ -1458,12 +1600,20 @@ TracksControlPanel::on_parameter_changed (const std::string& parameter_name)
} else if (parameter_name == "default-session-parent-dir") {
_default_open_path.set_text(Config->get_default_session_parent_dir());
} else if ((parameter_name == "meter-hold") ||
+ (parameter_name == "meter-falloff") ||
(parameter_name == "waveform-shape") ||
(parameter_name == "mmc-control") ||
(parameter_name == "send-mmc") ||
(parameter_name == "midi-feedback") ||
(parameter_name == "mmc-receive-device-id") ||
- (parameter_name == "mmc-send-device-id")){
+ (parameter_name == "mmc-send-device-id") ||
+ (parameter_name == "playback-buffer-seconds") ||
+ (parameter_name == "capture-buffer-seconds") ||
+ (parameter_name == "only-copy-imported-files") ||
+ (parameter_name == "denormal-protection") ||
+ (parameter_name == "history-depth") ||
+ (parameter_name == "save-history") ||
+ (parameter_name == "save-history-depth")){
// This is not that correct.
// We should update UI when the panel is being shown.
// We should not react immediately.
diff --git a/gtk2_ardour/ui/tracks_preferences.xml b/gtk2_ardour/ui/tracks_preferences.xml
index d3ac2aac2a..0e065a3393 100644
--- a/gtk2_ardour/ui/tracks_preferences.xml
+++ b/gtk2_ardour/ui/tracks_preferences.xml
@@ -12,17 +12,24 @@
fgdisabled ="#959595"/>
+ width="15"/>
+ bgdisabled="#373737"
+ height="20"/>
+
@@ -192,7 +199,6 @@
x="96"
y="12"
width="126"
- height="20"
normalicon="preference_device_dropdown"
activeicon="preference_device_dropdown_active"
_prelighticon="preference_device_dropdown_prelight"
@@ -217,7 +223,6 @@
x="96"
y="40"
width="126"
- height="20"
normalicon="preference_device_dropdown"
activeicon="preference_device_dropdown_active"
_prelighticon="preference_device_dropdown_prelight"
@@ -241,7 +246,6 @@
x="311"
y="12"
width="90"
- height="20"
normalicon="preference_rate_buffer_dropdown"
activeicon="preference_rate_buffer_dropdown_active"
_prelighticon="preference_rate_buffer_dropdown_prelight"
@@ -265,7 +269,6 @@
x="311"
y="40"
width="90"
- height="20"
normalicon="preference_rate_buffer_dropdown"
activeicon="preference_rate_buffer_dropdown_active"
_prelighticon="preference_rate_buffer_dropdown_prelight"
@@ -296,23 +299,31 @@
winfont ="Arial Bold 12"
macfont ="Helvetica Bold 12"
x="18" y="12"/>
-
-
+
+
+
@@ -455,7 +466,6 @@
x="215"
y="40"
width="150"
- height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
_prelighticon="preference_session_settings_dropdown_prelight">
@@ -482,7 +492,6 @@
x="215"
y="70"
width="150"
- height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
_prelighticon="preference_session_settings_dropdown_prelight">
@@ -507,7 +516,6 @@
x="215"
y="100"
width="150"
- height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
_prelighticon="preference_session_settings_dropdown_prelight">
@@ -539,7 +547,6 @@
x="215"
y="175"
width="150"
- height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
_prelighticon="preference_session_settings_dropdown_prelight">
@@ -570,7 +577,6 @@
x="215"
y="205"
width="150"
- height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
_prelighticon="preference_session_settings_dropdown_prelight">
@@ -604,7 +610,6 @@
x="215"
y="235"
width="150"
- height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
_prelighticon="preference_session_settings_dropdown_prelight">
@@ -650,21 +655,15 @@
height="557"
visible="false">
-
+
-
+
+ text="Peak Hold Time"/>
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -736,6 +807,128 @@
step="1"
page="10"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+