remove "New Return" menu option from processor box; make return toggle processor...
[ardour.git] / gtk2_ardour / return_ui.cc
index 5423415bd2c618a14c9a9bbb6efd218124d70ae3..03b6d6044d853c1f00a6152df3829976b503bb66 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2002 Paul Davis 
+    Copyright (C) 2002 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 
 #include <gtkmm2ext/doi.h>
 
+#include "ardour/amp.h"
 #include "ardour/io.h"
 #include "ardour/return.h"
+#include "ardour/rc_configuration.h"
 
 #include "utils.h"
 #include "return_ui.h"
 #include "ardour_ui.h"
 #include "gui_thread.h"
 
+using namespace std;
 using namespace ARDOUR;
 using namespace PBD;
 
-ReturnUI::ReturnUI (boost::shared_ptr<Return> r, Session& se)
+ReturnUI::ReturnUI (Gtk::Window* parent, boost::shared_ptr<Return> r, Session& se)
        : _return (r)
        , _session (se)
        , _gpm (se)
 {
-       _gpm.set_io (r->io());
+       _gpm.set_controls (boost::shared_ptr<Route>(), r->meter(), r->amp());
 
        _hbox.pack_start (_gpm, true, true);
        set_name ("ReturnUIFrame");
-       
+
        _vbox.set_spacing (5);
        _vbox.set_border_width (5);
 
        _vbox.pack_start (_hbox, false, false, false);
 
-       io = manage (new IOSelector (se, r->io(), true));
-       
+       io = manage (new IOSelector (parent, se, r->output()));
+
        pack_start (_vbox, false, false);
 
        pack_start (*io, true, true);
 
        show_all ();
 
-       //_return->set_metering (true);
+       _return->set_metering (true);
+       _return->input()->changed.connect (mem_fun (*this, &ReturnUI::ins_changed));
 
-       _return->io()->input_changed.connect (mem_fun (*this, &ReturnUI::ins_changed));
-       //_return->io()->output_changed.connect (mem_fun (*this, &ReturnUI::outs_changed));
-       
        _gpm.setup_meters ();
        _gpm.set_fader_name ("ReturnUIFrame");
 
@@ -68,7 +69,7 @@ ReturnUI::ReturnUI (boost::shared_ptr<Return> r, Session& se)
 
 ReturnUI::~ReturnUI ()
 {
-       //_return->set_metering (false);
+       _return->set_metering (false);
 
        /* XXX not clear that we need to do this */
 
@@ -97,11 +98,11 @@ ReturnUI::fast_update ()
                _gpm.update_meters ();
        }
 }
-       
+
 ReturnUIWindow::ReturnUIWindow (boost::shared_ptr<Return> s, Session& ss)
        : ArdourDialog (string("Ardour: return ") + s->name())
 {
-       ui = new ReturnUI (s, ss);
+       ui = new ReturnUI (this, s, ss);
 
        hpacker.pack_start (*ui, true, true);
 
@@ -109,13 +110,9 @@ ReturnUIWindow::ReturnUIWindow (boost::shared_ptr<Return> s, Session& ss)
        get_vbox()->pack_start (hpacker);
 
        set_name ("ReturnUIWindow");
-       
-       going_away_connection = s->GoingAway.connect (
-                       mem_fun (*this, &ReturnUIWindow::return_going_away));
 
-       signal_delete_event().connect (bind (
-                       ptr_fun (just_hide_it),
-                       reinterpret_cast<Window *> (this)));
+       going_away_connection = s->GoingAway.connect (mem_fun (*this, &ReturnUIWindow::return_going_away));
+       signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), reinterpret_cast<Window *> (this)));
 }
 
 ReturnUIWindow::~ReturnUIWindow ()