summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/ardour_ui.cc6
-rw-r--r--gtk2_ardour/ardour_ui_options.cc3
-rw-r--r--gtk2_ardour/rc_option_editor.cc8
-rw-r--r--libs/ardour/ardour/rc_configuration_vars.h1
4 files changed, 17 insertions, 1 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index d7304be538..fc4e342fc9 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -2009,7 +2009,11 @@ ARDOUR_UI::update_clocks ()
void
ARDOUR_UI::start_clocking ()
{
- clock_signal_connection = RapidScreenUpdate.connect (sigc::mem_fun(*this, &ARDOUR_UI::update_clocks));
+ if (Config->get_super_rapid_clock_update()) {
+ clock_signal_connection = SuperRapidScreenUpdate.connect (sigc::mem_fun(*this, &ARDOUR_UI::update_clocks));
+ } else {
+ clock_signal_connection = RapidScreenUpdate.connect (sigc::mem_fun(*this, &ARDOUR_UI::update_clocks));
+ }
}
void
diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc
index ecb5766c16..0af27c6bf3 100644
--- a/gtk2_ardour/ardour_ui_options.cc
+++ b/gtk2_ardour/ardour_ui_options.cc
@@ -409,6 +409,9 @@ ARDOUR_UI::parameter_changed (std::string p)
secondary_clock->set_editable (true);
secondary_clock->set_widget_name ("secondary");
}
+ } else if (p == "super-rapid-clock-update") {
+ stop_clocking ();
+ start_clocking ();
}
}
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index b64c03f4ee..7d290ede2f 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -1741,6 +1741,14 @@ RCOptionEditor::RCOptionEditor ()
sigc::mem_fun (*_rc_config, &RCConfiguration::set_use_plugin_own_gui)
));
+ add_option (S_("GUI"),
+ new BoolOption (
+ "super-rapid-clock-update",
+ _("update transport clock display every 40ms instead of every 100ms"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_super_rapid_clock_update),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_super_rapid_clock_update)
+ ));
+
/* The names of these controls must be the same as those given in MixerStrip
for the actual widgets being controlled.
*/
diff --git a/libs/ardour/ardour/rc_configuration_vars.h b/libs/ardour/ardour/rc_configuration_vars.h
index da10352206..c153bfd34a 100644
--- a/libs/ardour/ardour/rc_configuration_vars.h
+++ b/libs/ardour/ardour/rc_configuration_vars.h
@@ -143,6 +143,7 @@ CONFIG_VARIABLE (bool, show_track_meters, "show-track-meters", true)
CONFIG_VARIABLE (bool, locate_while_waiting_for_sync, "locate-while-waiting-for-sync", false)
CONFIG_VARIABLE (bool, disable_disarm_during_roll, "disable-disarm-during-roll", false)
CONFIG_VARIABLE (bool, always_play_range, "always-play-range", false)
+CONFIG_VARIABLE (bool, super_rapid_clock_update, "super-rapid-clock-update", false)
/* metering */