X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Freturn_ui.cc;h=d279aa55f4f7cf84a53ae82375805d049e78522f;hb=98d994f29c968796c5e9822e7c3b1713e53b274d;hp=5423415bd2c618a14c9a9bbb6efd218124d70ae3;hpb=2c231282baa596219506c1ee4632708977cc0714;p=ardour.git diff --git a/gtk2_ardour/return_ui.cc b/gtk2_ardour/return_ui.cc index 5423415bd2..d279aa55f4 100644 --- a/gtk2_ardour/return_ui.cc +++ b/gtk2_ardour/return_ui.cc @@ -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 @@ -19,8 +19,10 @@ #include +#include "ardour/amp.h" #include "ardour/io.h" #include "ardour/return.h" +#include "ardour/rc_configuration.h" #include "utils.h" #include "return_ui.h" @@ -28,47 +30,47 @@ #include "ardour_ui.h" #include "gui_thread.h" +#include "i18n.h" + +using namespace std; using namespace ARDOUR; using namespace PBD; -ReturnUI::ReturnUI (boost::shared_ptr r, Session& se) - : _return (r) - , _session (se) - , _gpm (se) +ReturnUI::ReturnUI (Gtk::Window* parent, boost::shared_ptr r, Session* session) + :_return (r) + , _gpm (session, 250) { - _gpm.set_io (r->io()); + _gpm.set_controls (boost::shared_ptr(), 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, session, 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 (input_change_connection, invalidator (*this), ui_bind (&ReturnUI::ins_changed, this, _1, _2), gui_context()); - _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"); - // screen_update_connection = ARDOUR_UI::instance()->RapidScreenUpdate.connect (mem_fun (*this, &ReturnUI::update)); - fast_screen_update_connection = ARDOUR_UI::instance()->SuperRapidScreenUpdate.connect (mem_fun (*this, &ReturnUI::fast_update)); + // screen_update_connection = ARDOUR_UI::instance()->RapidScreenUpdate.connect (sigc::mem_fun (*this, &ReturnUI::update)); + fast_screen_update_connection = ARDOUR_UI::instance()->SuperRapidScreenUpdate.connect (sigc::mem_fun (*this, &ReturnUI::fast_update)); } ReturnUI::~ReturnUI () { - //_return->set_metering (false); + _return->set_metering (false); /* XXX not clear that we need to do this */ @@ -77,10 +79,10 @@ ReturnUI::~ReturnUI () } void -ReturnUI::ins_changed (IOChange change, void* ignored) +ReturnUI::ins_changed (IOChange change, void* /*ignored*/) { - ENSURE_GUI_THREAD(bind (mem_fun (*this, &ReturnUI::ins_changed), change, ignored)); - if (change & ConfigurationChanged) { + ENSURE_GUI_THREAD (*this, &ReturnUI::ins_changed, change, ignored) + if (change.type & IOChange::ConfigurationChanged) { _gpm.setup_meters (); } } @@ -97,11 +99,11 @@ ReturnUI::fast_update () _gpm.update_meters (); } } - -ReturnUIWindow::ReturnUIWindow (boost::shared_ptr s, Session& ss) - : ArdourDialog (string("Ardour: return ") + s->name()) + +ReturnUIWindow::ReturnUIWindow (boost::shared_ptr r, ARDOUR::Session* s) + : ArdourDialog (string(_("Return ")) + r->name()) { - ui = new ReturnUI (s, ss); + ui = new ReturnUI (this, r, s); hpacker.pack_start (*ui, true, true); @@ -109,13 +111,9 @@ ReturnUIWindow::ReturnUIWindow (boost::shared_ptr 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 (this))); + r->DropReferences.connect (going_away_connection, invalidator (*this), boost::bind (&ReturnUIWindow::return_going_away, this), gui_context()); + signal_delete_event().connect (sigc::bind (sigc::ptr_fun (just_hide_it), reinterpret_cast (this))); } ReturnUIWindow::~ReturnUIWindow () @@ -126,8 +124,8 @@ ReturnUIWindow::~ReturnUIWindow () void ReturnUIWindow::return_going_away () { - ENSURE_GUI_THREAD (mem_fun (*this, &ReturnUIWindow::return_going_away)); + ENSURE_GUI_THREAD (*this, &ReturnUIWindow::return_going_away) + going_away_connection.disconnect (); delete_when_idle (this); - going_away_connection.disconnect (); }