summaryrefslogtreecommitdiff
path: root/gtk2_ardour/rc_option_editor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/rc_option_editor.cc')
-rw-r--r--gtk2_ardour/rc_option_editor.cc51
1 files changed, 45 insertions, 6 deletions
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index 9365f8eedd..0af11adae0 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -1019,24 +1019,45 @@ RCOptionEditor::RCOptionEditor ()
BoolOption* tsf = new BoolOption (
"timecode-sync-frame-rate",
- _("Force Ardour's timecode rate to match an external timecode source"),
+ _("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)
);
- tsf->set_note (_("If off, slaving to timecode will cause Ardour to chase the external timecode\nsource but it will use its own timecode frame rate"));
+ Gtkmm2ext::UI::instance()->set_tip
+ (tsf->tip_widget(),
+ _("This option controls the value of the video frame rate <i>while chasing</i> 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",
- _("Timecode source shares sample clock with audio interface"),
+ _("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(),
- _("If on, Ardour will assume that the timecode source shares an external sync\nsource (Blackburst, Word Clock, etc.) with your audio interface."
- "\nThis is a preferable configuration but may not match your equipment"));
+ Gtkmm2ext::UI::instance()->set_tip
+ (tsf->tip_widget(),
+ _("When enabled, indicates that the selected external timecode source shares sync (Black &amp; Burst, Wordclock, etc) with the audio interface"));
+
add_option (_("Transport"), tsf);
+ _sync_source = new ComboOption<SyncSource> (
+ "sync-source",
+ _("External timecode source"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_sync_source),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_sync_source)
+ );
+
+ populate_sync_options ();
+ parameter_changed (string ("external-sync"));
+
+ add_option (_("Timecode"), _sync_source);
+
+
/* EDITOR */
add_option (_("Editor"),
@@ -1674,5 +1695,23 @@ 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 {
+ _sync_source->set_sensitive (false);
+ }
+ }
+}
+
+void
+RCOptionEditor::populate_sync_options ()
+{
+ vector<SyncSource> sync_opts = ARDOUR::get_available_sync_options ();
+
+ _sync_source->clear ();
+
+ for (vector<SyncSource>::iterator i = sync_opts.begin(); i != sync_opts.end(); ++i) {
+ _sync_source->add (*i, sync_source_to_string (*i));
}
}