- pre_insert_box = new ProcessorBox(PreFader, *session, *_plugin_selector, _rr_selection, 0);
- post_insert_box = new ProcessorBox(PostFader, *session, *_plugin_selector, _rr_selection, 0);
-
- pre_insert_box->set_route (_route);
- post_insert_box->set_route (_route);
-
- pre_redir_hpane.pack1 (*pre_insert_box);
- post_redir_hpane.pack1 (*post_insert_box);
-
- pre_insert_box->ProcessorSelected.connect (bind (mem_fun(*this, &RouteParams_UI::redirect_selected), PreFader));
- pre_insert_box->ProcessorUnselected.connect (bind (mem_fun(*this, &RouteParams_UI::redirect_selected), PreFader));
- post_insert_box->ProcessorSelected.connect (bind (mem_fun(*this, &RouteParams_UI::redirect_selected), PostFader));
- post_insert_box->ProcessorUnselected.connect (bind (mem_fun(*this, &RouteParams_UI::redirect_selected), PostFader));
-
- pre_redir_hpane.show_all();
- post_redir_hpane.show_all();
+ insert_box = new ProcessorBox (_session, boost::bind (&RouteParams_UI::plugin_selector, this), _p_selection, 0);
+ insert_box->set_route (_route);
+
+ boost::shared_ptr<AudioTrack> at = boost::dynamic_pointer_cast<AudioTrack>(_route);
+ if (at) {
+ at->FreezeChange.connect (route_connections, invalidator (*this), boost::bind (&RouteParams_UI::map_frozen, this), gui_context());
+ }
+ redir_hpane.add (*insert_box);
+
+ insert_box->ProcessorSelected.connect (sigc::mem_fun(*this, &RouteParams_UI::redirect_selected)); //note: this indicates a double-click activation, not just a "selection"
+ insert_box->ProcessorUnselected.connect (sigc::mem_fun(*this, &RouteParams_UI::redirect_selected));
+
+ redir_hpane.show_all();