X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fsend_ui.cc;h=e99ea25cbdca7a889f6391fd196c9d07c90488c1;hb=f6f3769ae11e3a9e888abdf8c3ed92f08d3c9a5b;hp=8faa3158481c1bd6b9921d272a320689392d6ad5;hpb=99904735e066804358f1d0bd138a84f1e9ecda91;p=ardour.git diff --git a/gtk2_ardour/send_ui.cc b/gtk2_ardour/send_ui.cc index 8faa315848..e99ea25cbd 100644 --- a/gtk2_ardour/send_ui.cc +++ b/gtk2_ardour/send_ui.cc @@ -30,11 +30,14 @@ using namespace ARDOUR; using namespace PBD; SendUI::SendUI (boost::shared_ptr s, Session& se) - : _send (s), - _session (se), - gpm (s, se), - panners (s, se) + : _send (s) + , _session (se) + , gpm (se) + , panners (se) { + panners.set_io (s->io()); + gpm.set_io (s->io()); + hbox.pack_start (gpm, true, true); set_name ("SendUIFrame"); @@ -44,7 +47,7 @@ SendUI::SendUI (boost::shared_ptr s, Session& se) vbox.pack_start (hbox, false, false, false); vbox.pack_start (panners, false,false); - io = new IOSelector (se, s, false); + io = manage (new IOSelector (se, s->io(), false)); pack_start (vbox, false, false); @@ -54,8 +57,8 @@ SendUI::SendUI (boost::shared_ptr s, Session& se) _send->set_metering (true); - _send->output_changed.connect (mem_fun (*this, &SendUI::ins_changed)); - _send->output_changed.connect (mem_fun (*this, &SendUI::outs_changed)); + _send->io()->input_changed.connect (mem_fun (*this, &SendUI::ins_changed)); + _send->io()->output_changed.connect (mem_fun (*this, &SendUI::outs_changed)); panners.set_width (Wide); panners.setup_pan (); @@ -70,7 +73,7 @@ SendUI::SendUI (boost::shared_ptr s, Session& se) SendUI::~SendUI () { _send->set_metering (false); - + /* XXX not clear that we need to do this */ screen_update_connection.disconnect(); @@ -110,22 +113,20 @@ SendUI::fast_update () } SendUIWindow::SendUIWindow (boost::shared_ptr s, Session& ss) + : ArdourDialog (string("Ardour: send ") + s->name()) { ui = new SendUI (s, ss); - vpacker.set_border_width (5); - hpacker.pack_start (*ui, true, true); - vpacker.pack_start (hpacker); + get_vbox()->set_border_width (5); + get_vbox()->pack_start (hpacker); - add (vpacker); set_name ("SendUIWindow"); - - s->GoingAway.connect (mem_fun (*this, &SendUIWindow::send_going_away)); + + going_away_connection = s->GoingAway.connect (mem_fun (*this, &SendUIWindow::send_going_away)); signal_delete_event().connect (bind (ptr_fun (just_hide_it), reinterpret_cast (this))); - } SendUIWindow::~SendUIWindow () @@ -138,5 +139,6 @@ SendUIWindow::send_going_away () { ENSURE_GUI_THREAD (mem_fun (*this, &SendUIWindow::send_going_away)); delete_when_idle (this); + going_away_connection.disconnect (); }