diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index 0af11adae0..3500022239 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -959,92 +959,79 @@ RCOptionEditor::RCOptionEditor ()
/* TRANSPORT */
- add_option (_("Transport"),
- new BoolOption (
+ BoolOption* tsf;
+
+ tsf = new BoolOption (
"latched-record-enable",
_("Keep record-enable engaged on stop"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_latched_record_enable),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_latched_record_enable)
- ));
+ );
+ // Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _(""));
+ add_option (_("Transport"), tsf);
- add_option (_("Transport"),
- new BoolOption (
+ tsf = new BoolOption (
"stop-recording-on-xrun",
_("Stop recording when an xrun occurs"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_stop_recording_on_xrun),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_stop_recording_on_xrun)
- ));
+ );
+ Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _("When enabled Ardour will stop recording if an over- or underrun is detected by the audio engine"));
+ add_option (_("Transport"), tsf);
- add_option (_("Transport"),
- new BoolOption (
+ tsf = new BoolOption (
"create-xrun-marker",
_("Create markers where xruns occur"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_create_xrun_marker),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_create_xrun_marker)
- ));
+ );
+ // Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _(""));
+ add_option (_("Transport"), tsf);
- add_option (_("Transport"),
- new BoolOption (
+ tsf = new BoolOption (
"stop-at-session-end",
_("Stop at the end of the session"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_stop_at_session_end),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_stop_at_session_end)
- ));
+ );
+ Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _("When enabled if Ardour is not recording, it will stop the transport "
+ "when it reaches the current session end marker\n\n"
+ "When disabled Ardour will continue to roll past the session end marker at all times"));
+ add_option (_("Transport"), tsf);
- add_option (_("Transport"),
- new BoolOption (
+ tsf = new BoolOption (
"seamless-loop",
_("Do seamless looping (not possible when slaved to MTC, JACK etc)"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_seamless_loop),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_seamless_loop)
- ));
+ );
+ Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _("When enabled this will loop by reading ahead and wrapping around at the loop point, "
+ "preventing any need to do a transport locate at the end of the loop\n\n"
+ "When disabled looping is done by locating back to the start of the loop when Ardour reaches the end "
+ "which will often cause a small click or delay"));
+ add_option (_("Transport"), tsf);
- add_option (_("Transport"),
- new BoolOption (
+ tsf = new BoolOption (
"disable-disarm-during-roll",
_("Disable per-track record disarm while rolling"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_disable_disarm_during_roll),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_disable_disarm_during_roll)
- ));
+ );
+ Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _("When enabled this will prevent you from accidentally stopping specific tracks recording during a take"));
+ add_option (_("Transport"), tsf);
- add_option (_("Transport"),
- new BoolOption (
+ tsf = new BoolOption (
"quieten_at_speed",
_("12dB gain reduction during fast-forward and fast-rewind"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_quieten_at_speed),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_quieten_at_speed)
- ));
+ );
+ Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _("This will reduce the unpleasant increase in perceived volume "
+ "that occurs when fast-forwarding or rewinding through some kinds of audio"));
+ add_option (_("Transport"), tsf);
add_option (_("Transport"), new OptionEditorHeading (S_("Sync/Slave")));
- BoolOption* tsf = new BoolOption (
- "timecode-sync-frame-rate",
- _("Match session video frame rate to external timecode (when slaved to timecode)"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_sync_frame_rate),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_sync_frame_rate)
- );
- Gtkmm2ext::UI::instance()->set_tip
- (tsf->tip_widget(),
- _("This option controls the value of the video frame rate while chasing an external timecode source.\n\n"
- "When enabled, the session video frame rate will be changed to match that of the selected external timecode source.\n\n"
- "When not enabled, the session video frame rate will not be changed to match that of the selected external timecode source."
- "Instead the frame rate indication in the main clock will flash red and Ardour will convert between the external "
- "timecode standard and the session standard"));
-
- add_option (_("Transport"), tsf);
-
- tsf = new BoolOption (
- "timecode-source-is-synced",
- _("External timecode is sync locked"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_source_is_synced),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_source_is_synced)
- );
- Gtkmm2ext::UI::instance()->set_tip
- (tsf->tip_widget(),
- _("When enabled, indicates that the selected external timecode source shares sync (Black & Burst, Wordclock, etc) with the audio interface"));
-
- add_option (_("Transport"), tsf);
-
_sync_source = new ComboOption (
"sync-source",
_("External timecode source"),
@@ -1053,10 +1040,37 @@ RCOptionEditor::RCOptionEditor ()
);
populate_sync_options ();
- parameter_changed (string ("external-sync"));
+ add_option (_("Transport"), _sync_source);
- add_option (_("Timecode"), _sync_source);
+ _sync_framerate = new BoolOption (
+ "timecode-sync-frame-rate",
+ _("Match session video frame rate to external timecode"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_sync_frame_rate),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_sync_frame_rate)
+ );
+ Gtkmm2ext::UI::instance()->set_tip
+ (_sync_framerate->tip_widget(),
+ _("This option controls the value of the video frame rate while chasing an external timecode source.\n\n"
+ "When enabled, the session video frame rate will be changed to match that of the selected external timecode source.\n\n"
+ "When disabled, the session video frame rate will not be changed to match that of the selected external timecode source."
+ "Instead the frame rate indication in the main clock will flash red and Ardour will convert between the external "
+ "timecode standard and the session standard"));
+ add_option (_("Transport"), _sync_framerate);
+
+ _sync_genlock = new BoolOption (
+ "timecode-source-is-synced",
+ _("External timecode is sync locked"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_source_is_synced),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_source_is_synced)
+ );
+ Gtkmm2ext::UI::instance()->set_tip
+ (_sync_genlock->tip_widget(),
+ _("When enabled, indicates that the selected external timecode source shares sync (Black & Burst, Wordclock, etc) with the audio interface"));
+
+ add_option (_("Transport"), _sync_genlock);
+
+ parameter_changed ("sync-source");
/* EDITOR */
@@ -1695,11 +1709,13 @@ RCOptionEditor::parameter_changed (string const & p)
}
_solo_control_is_listen_control->set_sensitive (s);
_listen_position->set_sensitive (s);
- } else if (p == "external-sync") {
- if (_session) {
- _sync_source->set_sensitive (!_session->config.get_external_sync ());
+ } else if (p == "sync-source") {
+ if (Config->get_sync_source() != ARDOUR::MTC) {
+ _sync_genlock->set_sensitive (false);
+ _sync_framerate->set_sensitive (false);
} else {
- _sync_source->set_sensitive (false);
+ _sync_genlock->set_sensitive (true);
+ _sync_framerate->set_sensitive (true);
}
}
}
diff --git a/gtk2_ardour/rc_option_editor.h b/gtk2_ardour/rc_option_editor.h
index 6789594e8a..eae27d323b 100644
--- a/gtk2_ardour/rc_option_editor.h
+++ b/gtk2_ardour/rc_option_editor.h
@@ -43,4 +43,8 @@ private:
ComboOption* _listen_position;
VisibilityGroup _mixer_strip_visibility;
ComboOption* _sync_source;
+ BoolOption* _sync_framerate;
+ BoolOption* _sync_genlock;
+
+ PBD::ScopedConnection parameter_change_connection;
};