Mixer_UI::Mixer_UI ()
: Window (Gtk::WINDOW_TOPLEVEL)
+ , _plugin_selector (0)
{
session = 0;
_strip_width = Config->get_default_narrow_ms() ? Narrow : Wide;
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);
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));
route_groups_changed ();
- _plugin_selector->set_session (session);
+ if (_plugin_selector)
+ _plugin_selector->set_session (session);
if (_visible) {
show_window();
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;
+}