X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fsend_ui.cc;h=3fb6e8af47571a102f17c897a08cd2fce282c4ff;hb=2e1332f74f803a1be4c8bb4911266aef4b63f145;hp=c4656834a66919f2c67bf2e7cc7afa86e53d79e1;hpb=fedf3d34f32264ac57c6a222b678dc90f2bb1a88;p=ardour.git diff --git a/gtk2_ardour/send_ui.cc b/gtk2_ardour/send_ui.cc index c4656834a6..3fb6e8af47 100644 --- a/gtk2_ardour/send_ui.cc +++ b/gtk2_ardour/send_ui.cc @@ -15,12 +15,13 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ -#include #include +#include +#include + #include "utils.h" #include "send_ui.h" #include "io_selector.h" @@ -31,11 +32,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"); @@ -45,7 +49,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(), true)); pack_start (vbox, false, false); @@ -55,8 +59,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 (); @@ -71,7 +75,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(); @@ -111,22 +115,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 () @@ -139,5 +141,6 @@ SendUIWindow::send_going_away () { ENSURE_GUI_THREAD (mem_fun (*this, &SendUIWindow::send_going_away)); delete_when_idle (this); + going_away_connection.disconnect (); }