diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-11-10 04:30:08 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-11-10 04:30:08 +0000 |
commit | a65149b2462ea0e73c4686d7ed7bbc42bf6a1632 (patch) | |
tree | 357ff8dbc5c10e7804da23d7876d3ccf9b14f46e /gtk2_ardour/session_option_editor.cc | |
parent | dbb0b9ca4f82ea8e3829cfeb009b9746c3d6f0dc (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.cc | 149 |
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); + } + } +} |