diff options
author | David Robillard <d@drobilla.net> | 2009-10-22 17:17:34 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-10-22 17:17:34 +0000 |
commit | 155338d168b362dd135597695aaa1e419831a277 (patch) | |
tree | c2f97ff4b99366b72418765cb4a69ccbd4c45065 /gtk2_ardour/mixer_ui.cc | |
parent | 525da3281674a92ff00150098ef1be7a403555dd (diff) |
Defer plugin discovery until actually needed (significant startup time improvement, especially with LV2).
git-svn-id: svn://localhost/ardour2/branches/3.0@5859 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/mixer_ui.cc')
-rw-r--r-- | gtk2_ardour/mixer_ui.cc | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 51578ad2b4..9931d51ff0 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -62,6 +62,7 @@ using PBD::atoi; Mixer_UI::Mixer_UI () : Window (Gtk::WINDOW_TOPLEVEL) + , _plugin_selector (0) { session = 0; _strip_width = Config->get_default_narrow_ms() ? Narrow : Wide; @@ -76,9 +77,9 @@ Mixer_UI::Mixer_UI () Route::SyncOrderKeys.connect (mem_fun (*this, &Mixer_UI::sync_order_keys)); - scroller_base.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK); - scroller_base.set_name ("MixerWindow"); - scroller_base.signal_button_release_event().connect (mem_fun(*this, &Mixer_UI::strip_scroller_button_release)); + scroller_base.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK); + scroller_base.set_name ("MixerWindow"); + scroller_base.signal_button_release_event().connect (mem_fun(*this, &Mixer_UI::strip_scroller_button_release)); // add as last item of strip packer strip_packer.pack_end (scroller_base, true, true); @@ -220,8 +221,6 @@ Mixer_UI::Mixer_UI () signal_delete_event().connect (mem_fun (*this, &Mixer_UI::hide_window)); add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK); - _plugin_selector = new PluginSelector (PluginManager::the_manager()); - signal_configure_event().connect (mem_fun (*ARDOUR_UI::instance(), &ARDOUR_UI::configure_handler)); _selection.RoutesChanged.connect (mem_fun(*this, &Mixer_UI::follow_strip_selection)); @@ -466,7 +465,8 @@ Mixer_UI::connect_to_session (Session* sess) route_groups_changed (); - _plugin_selector->set_session (session); + if (_plugin_selector) + _plugin_selector->set_session (session); if (_visible) { show_window(); @@ -1487,3 +1487,12 @@ Mixer_UI::set_route_group_activation (RouteGroup* g, bool a) g->set_active (a, this); } +PluginSelector& +Mixer_UI::plugin_selector() +{ + if (!_plugin_selector) { + _plugin_selector = new PluginSelector (PluginManager::the_manager()); + _plugin_selector->set_session (session); + } + return *_plugin_selector; +} |