: OptionEditor (&(s->config), _("Session Properties"))
, _session_config (&(s->config))
{
+ set_session (s);
+
set_name ("SessionProperties");
- /* SYNC */
+ /* TIMECODE*/
- ComboOption<uint32_t>* spf = new ComboOption<uint32_t> (
- "subframes-per-frame",
- _("Subframes per frame"),
- sigc::mem_fun (*_session_config, &SessionConfiguration::get_subframes_per_frame),
- sigc::mem_fun (*_session_config, &SessionConfiguration::set_subframes_per_frame)
- );
-
- spf->add (80, _("80"));
- spf->add (100, _("100"));
-
- add_option (_("Sync"), spf);
-
- ComboOption<SyncSource>* ssrc = new ComboOption<SyncSource> (
+ _sync_source = new ComboOption<SyncSource> (
"sync-source",
- _("External sync source"),
+ _("External timecode source"),
sigc::mem_fun (*_session_config, &SessionConfiguration::get_sync_source),
sigc::mem_fun (*_session_config, &SessionConfiguration::set_sync_source)
);
- s->config.ParameterChanged.connect (_session_connections, invalidator (*this), ui_bind (&SessionOptionEditor::follow_sync_state, this, _1, s, ssrc), gui_context());
+ populate_sync_options ();
+ parameter_changed (string ("external-sync"));
+
+ add_option (_("Timecode"), _sync_source);
- populate_sync_options (s, ssrc);
- follow_sync_state (string ("external-sync"), s, ssrc);
+ add_option (_("Timecode"), new OptionEditorHeading (_("Timecode Settings")));
- add_option (_("Sync"), ssrc);
ComboOption<TimecodeFormat>* smf = new ComboOption<TimecodeFormat> (
"timecode-format",
smf->add (timecode_5994, _("59.94"));
smf->add (timecode_60, _("60"));
- add_option (_("Sync"), smf);
+ add_option (_("Timecode"), smf);
- add_option (_("Sync"), new BoolOption (
+ ComboOption<uint32_t>* spf = new ComboOption<uint32_t> (
+ "subframes-per-frame",
+ _("Subframes per frame"),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_subframes_per_frame),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_subframes_per_frame)
+ );
+
+ spf->add (80, _("80"));
+ spf->add (100, _("100"));
+
+ add_option (_("Timecode"), spf);
+
+ add_option (_("Timecode"), new BoolOption (
"timecode-source-is-synced",
_("Timecode source shares sample clock with audio interface"),
sigc::mem_fun (*_session_config, &SessionConfiguration::get_timecode_source_is_synced),
vpu->add (-4.1667, _("-4.1667"));
vpu->add (-4.1667 - 0.1, _("-4.1667 - 0.1%"));
- add_option (_("Sync"), vpu);
+ add_option (_("Timecode"), vpu);
+
+ ClockOption* co = new ClockOption (
+ "timecode-offset",
+ _("Timecode Offset"),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_timecode_offset),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_timecode_offset)
+ );
+
+ co->set_session (_session);
+
+ add_option (_("Timecode"), co);
+
+ add_option (_("Timecode"), new BoolOption (
+ "timecode-offset-negative",
+ _("Timecode Offset Negative"),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_timecode_offset_negative),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_timecode_offset_negative)
+ ));
/* FADES */
add_option (_("Media"), hf);
+ add_option (_("Media"), new OptionEditorHeading (_("File locations")));
+
SearchPathOption* spo = new SearchPathOption ("audio-search-path", _("Search for audio files in:"),
sigc::mem_fun (*_session_config, &SessionConfiguration::get_audio_search_path),
sigc::mem_fun (*_session_config, &SessionConfiguration::set_audio_search_path));
}
void
-SessionOptionEditor::populate_sync_options (Session* s, Option* opt)
+SessionOptionEditor::populate_sync_options ()
{
- ComboOption<SyncSource>* sync_opt = dynamic_cast<ComboOption<SyncSource>* > (opt);
+ vector<SyncSource> sync_opts = _session->get_available_sync_options ();
- vector<SyncSource> sync_opts = s->get_available_sync_options ();
-
- sync_opt->clear ();
+ _sync_source->clear ();
for (vector<SyncSource>::iterator i = sync_opts.begin(); i != sync_opts.end(); ++i) {
- sync_opt->add (*i, sync_source_to_string (*i));
+ _sync_source->add (*i, sync_source_to_string (*i));
}
}
void
-SessionOptionEditor::follow_sync_state (std::string p, Session* s, Option* opt)
+SessionOptionEditor::parameter_changed (std::string const & p)
{
- ComboOption<SyncSource>* sync_opt = dynamic_cast<ComboOption<SyncSource>* > (opt);
+ OptionEditor::parameter_changed (p);
+
if (p == "external-sync") {
- if (s->config.get_external_sync()) {
- sync_opt->set_sensitive (false);
- } else {
- sync_opt->set_sensitive (true);
- }
+ _sync_source->set_sensitive (!_session->config.get_external_sync ());
}
}