summaryrefslogtreecommitdiff
path: root/gtk2_ardour/session_option_editor.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-11-10 04:30:08 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-11-10 04:30:08 +0000
commita65149b2462ea0e73c4686d7ed7bbc42bf6a1632 (patch)
tree357ff8dbc5c10e7804da23d7876d3ccf9b14f46e /gtk2_ardour/session_option_editor.cc
parentdbb0b9ca4f82ea8e3829cfeb009b9746c3d6f0dc (diff)
lots of tweaks relating to GUI sync management
git-svn-id: svn://localhost/ardour2/branches/3.0@6051 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/session_option_editor.cc')
-rw-r--r--gtk2_ardour/session_option_editor.cc149
1 files changed, 82 insertions, 67 deletions
diff --git a/gtk2_ardour/session_option_editor.cc b/gtk2_ardour/session_option_editor.cc
index 49dbcdff15..f8f060684f 100644
--- a/gtk2_ardour/session_option_editor.cc
+++ b/gtk2_ardour/session_option_editor.cc
@@ -141,73 +141,6 @@ SessionOptionEditor::SessionOptionEditor (Session* s)
: OptionEditor (&(s->config), _("Session Preferences"))
, _session_config (&(s->config))
{
- /* FADES */
-
- ComboOption<CrossfadeModel>* cfm = new ComboOption<CrossfadeModel> (
- "xfade-model",
- _("Crossfades are created"),
- mem_fun (*_session_config, &SessionConfiguration::get_xfade_model),
- mem_fun (*_session_config, &SessionConfiguration::set_xfade_model)
- );
-
- cfm->add (FullCrossfade, _("to span entire overlap"));
- cfm->add (ShortCrossfade, _("short"));
-
- add_option (_("Fades"), cfm);
-
- add_option (_("Fades"), new SpinOption<float> (
- _("short-xfade-seconds"),
- _("Short crossfade length"),
- mem_fun (*_session_config, &SessionConfiguration::get_short_xfade_seconds),
- mem_fun (*_session_config, &SessionConfiguration::set_short_xfade_seconds),
- 0, 1000, 1, 10,
- _("ms"), 0.001
- ));
-
- add_option (_("Fades"), new SpinOption<float> (
- _("destructive-xfade-seconds"),
- _("Destructive crossfade length"),
- mem_fun (*_session_config, &SessionConfiguration::get_destructive_xfade_msecs),
- mem_fun (*_session_config, &SessionConfiguration::set_destructive_xfade_msecs),
- 0, 1000, 1, 10,
- _("ms")
- ));
-
- add_option (_("Fades"), new BoolOption (
- "auto-xfade",
- _("Create crossfades automatically"),
- mem_fun (*_session_config, &SessionConfiguration::get_auto_xfade),
- mem_fun (*_session_config, &SessionConfiguration::set_auto_xfade)
- ));
-
- add_option (_("Fades"), new BoolOption (
- "xfades-active",
- _("Crossfades active"),
- mem_fun (*_session_config, &SessionConfiguration::get_xfades_active),
- mem_fun (*_session_config, &SessionConfiguration::set_xfades_active)
- ));
-
- add_option (_("Fades"), new BoolOption (
- "xfades-visible",
- _("Crossfades visible"),
- mem_fun (*_session_config, &SessionConfiguration::get_xfades_visible),
- mem_fun (*_session_config, &SessionConfiguration::set_xfades_visible)
- ));
-
- add_option (_("Fades"), new BoolOption (
- "use-region-fades",
- _("Region fades active"),
- mem_fun (*_session_config, &SessionConfiguration::get_use_region_fades),
- mem_fun (*_session_config, &SessionConfiguration::set_use_region_fades)
- ));
-
- add_option (_("Fades"), new BoolOption (
- "show-region-fades",
- _("Region fades visible"),
- mem_fun (*_session_config, &SessionConfiguration::get_show_region_fades),
- mem_fun (*_session_config, &SessionConfiguration::set_show_region_fades)
- ));
-
/* SYNC */
ComboOption<uint32_t>* spf = new ComboOption<uint32_t> (
@@ -231,7 +164,10 @@ SessionOptionEditor::SessionOptionEditor (Session* s)
s->MTC_PortChanged.connect (bind (mem_fun (*this, &SessionOptionEditor::populate_sync_options), s, ssrc));
s->MIDIClock_PortChanged.connect (bind (mem_fun (*this, &SessionOptionEditor::populate_sync_options), s, ssrc));
+ s->config.ParameterChanged.connect (bind (mem_fun (*this, &SessionOptionEditor::follow_sync_state), s, ssrc));
+
populate_sync_options (s, ssrc);
+ follow_sync_state (string ("external-sync"), s, ssrc);
add_option (_("Sync"), ssrc);
@@ -281,6 +217,73 @@ SessionOptionEditor::SessionOptionEditor (Session* s)
add_option (_("Sync"), vpu);
+ /* FADES */
+
+ ComboOption<CrossfadeModel>* cfm = new ComboOption<CrossfadeModel> (
+ "xfade-model",
+ _("Crossfades are created"),
+ mem_fun (*_session_config, &SessionConfiguration::get_xfade_model),
+ mem_fun (*_session_config, &SessionConfiguration::set_xfade_model)
+ );
+
+ cfm->add (FullCrossfade, _("to span entire overlap"));
+ cfm->add (ShortCrossfade, _("short"));
+
+ add_option (_("Fades"), cfm);
+
+ add_option (_("Fades"), new SpinOption<float> (
+ _("short-xfade-seconds"),
+ _("Short crossfade length"),
+ mem_fun (*_session_config, &SessionConfiguration::get_short_xfade_seconds),
+ mem_fun (*_session_config, &SessionConfiguration::set_short_xfade_seconds),
+ 0, 1000, 1, 10,
+ _("ms"), 0.001
+ ));
+
+ add_option (_("Fades"), new SpinOption<float> (
+ _("destructive-xfade-seconds"),
+ _("Destructive crossfade length"),
+ mem_fun (*_session_config, &SessionConfiguration::get_destructive_xfade_msecs),
+ mem_fun (*_session_config, &SessionConfiguration::set_destructive_xfade_msecs),
+ 0, 1000, 1, 10,
+ _("ms")
+ ));
+
+ add_option (_("Fades"), new BoolOption (
+ "auto-xfade",
+ _("Create crossfades automatically"),
+ mem_fun (*_session_config, &SessionConfiguration::get_auto_xfade),
+ mem_fun (*_session_config, &SessionConfiguration::set_auto_xfade)
+ ));
+
+ add_option (_("Fades"), new BoolOption (
+ "xfades-active",
+ _("Crossfades active"),
+ mem_fun (*_session_config, &SessionConfiguration::get_xfades_active),
+ mem_fun (*_session_config, &SessionConfiguration::set_xfades_active)
+ ));
+
+ add_option (_("Fades"), new BoolOption (
+ "xfades-visible",
+ _("Crossfades visible"),
+ mem_fun (*_session_config, &SessionConfiguration::get_xfades_visible),
+ mem_fun (*_session_config, &SessionConfiguration::set_xfades_visible)
+ ));
+
+ add_option (_("Fades"), new BoolOption (
+ "use-region-fades",
+ _("Region fades active"),
+ mem_fun (*_session_config, &SessionConfiguration::get_use_region_fades),
+ mem_fun (*_session_config, &SessionConfiguration::set_use_region_fades)
+ ));
+
+ add_option (_("Fades"), new BoolOption (
+ "show-region-fades",
+ _("Region fades visible"),
+ mem_fun (*_session_config, &SessionConfiguration::get_show_region_fades),
+ mem_fun (*_session_config, &SessionConfiguration::set_show_region_fades)
+ ));
+
/* MISC */
add_option (_("Misc"), new OptionEditorHeading (_("Audio file format")));
@@ -360,3 +363,15 @@ SessionOptionEditor::populate_sync_options (Session* s, Option* opt)
}
}
+void
+SessionOptionEditor::follow_sync_state (std::string p, Session* s, Option* opt)
+{
+ ComboOption<SyncSource>* sync_opt = dynamic_cast<ComboOption<SyncSource>* > (opt);
+ if (p == "external-sync") {
+ if (s->config.get_external_sync()) {
+ sync_opt->set_sensitive (false);
+ } else {
+ sync_opt->set_sensitive (true);
+ }
+ }
+}