X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Froute_params_ui.cc;h=d1a79de8afbda689bc542c7ce27231a17f9d3399;hb=965c295451916cf7f04d33fbf41ff2beb573439b;hp=8d8efad8a277040b849626428dc1aef60829e577;hpb=5596fe35dffcbbe4c800af5ef9fac15e8cf7e0bf;p=ardour.git diff --git a/gtk2_ardour/route_params_ui.cc b/gtk2_ardour/route_params_ui.cc index 8d8efad8a2..d1a79de8af 100644 --- a/gtk2_ardour/route_params_ui.cc +++ b/gtk2_ardour/route_params_ui.cc @@ -15,7 +15,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ #include @@ -23,6 +22,7 @@ #include #include #include +#include #include #include @@ -54,11 +54,11 @@ using namespace ARDOUR; using namespace PBD; using namespace Gtk; +using namespace Gtkmm2ext; using namespace sigc; -RouteParams_UI::RouteParams_UI (AudioEngine& eng) +RouteParams_UI::RouteParams_UI () : ArdourDialog ("track/bus inspector"), - engine (eng), track_menu(0) { pre_redirect_box = 0; @@ -137,8 +137,11 @@ RouteParams_UI::RouteParams_UI (AudioEngine& eng) set_name ("RouteParamsWindow"); set_default_size (620,370); - set_title (_("ardour: track/bus inspector")); - set_wmclass (_("ardour_route_parameters"), "Ardour"); + set_wmclass (X_("ardour_route_parameters"), "Ardour"); + + WindowTitle title(Glib::get_application_name()); + title += _("Track/Bus Inspector"); + set_title (title.get_string()); // events route_display.get_selection()->signal_changed().connect(mem_fun(*this, &RouteParams_UI::route_selected)); @@ -159,22 +162,26 @@ RouteParams_UI::~RouteParams_UI () } void -RouteParams_UI::add_route (boost::shared_ptr route) +RouteParams_UI::add_routes (Session::RouteList& routes) { - ENSURE_GUI_THREAD(bind (mem_fun(*this, &RouteParams_UI::add_route), route)); + ENSURE_GUI_THREAD(bind (mem_fun(*this, &RouteParams_UI::add_routes), routes)); - if (route->hidden()) { - return; - } + for (Session::RouteList::iterator x = routes.begin(); x != routes.end(); ++x) { + boost::shared_ptr route = (*x); - TreeModel::Row row = *(route_display_model->append()); - row[route_display_columns.text] = route->name(); - row[route_display_columns.route] = route; - - //route_select_list.rows().back().select (); - - route->name_changed.connect (bind (mem_fun(*this, &RouteParams_UI::route_name_changed), route)); - route->GoingAway.connect (bind (mem_fun(*this, &RouteParams_UI::route_removed), route)); + if (route->hidden()) { + return; + } + + TreeModel::Row row = *(route_display_model->append()); + row[route_display_columns.text] = route->name(); + row[route_display_columns.route] = route; + + //route_select_list.rows().back().select (); + + route->name_changed.connect (bind (mem_fun(*this, &RouteParams_UI::route_name_changed), route)); + route->GoingAway.connect (bind (mem_fun(*this, &RouteParams_UI::route_removed), route)); + } } @@ -213,8 +220,11 @@ RouteParams_UI::setup_redirect_boxes() cleanup_redirect_boxes(); // construct new redirect boxes - pre_redirect_box = new RedirectBox(PreFader, *session, _route, *_plugin_selector, _rr_selection); - post_redirect_box = new RedirectBox(PostFader, *session, _route, *_plugin_selector, _rr_selection); + pre_redirect_box = new RedirectBox(PreFader, *session, *_plugin_selector, _rr_selection); + post_redirect_box = new RedirectBox(PostFader, *session, *_plugin_selector, _rr_selection); + + pre_redirect_box->set_route (_route); + post_redirect_box->set_route (_route); pre_redir_hpane.pack1 (*pre_redirect_box); post_redir_hpane.pack1 (*post_redirect_box); @@ -287,9 +297,9 @@ void RouteParams_UI::cleanup_pre_view (bool stopupdate) { if (_active_pre_view) { - LadspaPluginUI * plugui = 0; + GenericPluginUI * plugui = 0; - if (stopupdate && (plugui = dynamic_cast(_active_pre_view)) != 0) { + if (stopupdate && (plugui = dynamic_cast(_active_pre_view)) != 0) { plugui->stop_updating (0); } @@ -304,9 +314,9 @@ void RouteParams_UI::cleanup_post_view (bool stopupdate) { if (_active_post_view) { - LadspaPluginUI * plugui = 0; + GenericPluginUI * plugui = 0; - if (stopupdate && (plugui = dynamic_cast(_active_post_view)) != 0) { + if (stopupdate && (plugui = dynamic_cast(_active_post_view)) != 0) { plugui->stop_updating (0); } _post_plugin_conn.disconnect(); @@ -355,9 +365,10 @@ RouteParams_UI::set_session (Session *sess) route_display_model->clear(); if (session) { - session->foreach_route (this, &RouteParams_UI::add_route); - session->going_away.connect (mem_fun(*this, &ArdourDialog::session_gone)); - session->RouteAdded.connect (mem_fun(*this, &RouteParams_UI::add_route)); + boost::shared_ptr r = session->get_routes(); + add_routes (*r); + session->GoingAway.connect (mem_fun(*this, &ArdourDialog::session_gone)); + session->RouteAdded.connect (mem_fun(*this, &RouteParams_UI::add_routes)); start_updating (); } else { stop_updating (); @@ -503,9 +514,9 @@ RouteParams_UI::show_track_menu() track_menu->set_name ("ArdourContextMenu"); track_menu->items().push_back (MenuElem (_("Add Track/Bus"), - mem_fun (*(ARDOUR_UI::instance()), &ARDOUR_UI::add_route))); + bind (mem_fun (*(ARDOUR_UI::instance()), &ARDOUR_UI::add_route), (Gtk::Window*) 0))); } - track_menu->popup (1, 0); + track_menu->popup (1, gtk_get_current_event_time()); } @@ -532,7 +543,7 @@ RouteParams_UI::redirect_selected (boost::shared_ptr redirect, if (place == PreFader) { cleanup_pre_view(); - _pre_plugin_conn = send->GoingAway.connect (mem_fun(*this, &RouteParams_UI::redirect_going_away)); + _pre_plugin_conn = send->GoingAway.connect (bind (mem_fun(*this, &RouteParams_UI::redirect_going_away), redirect)); _active_pre_view = send_ui; pre_redir_hpane.add2 (*_active_pre_view); @@ -540,7 +551,7 @@ RouteParams_UI::redirect_selected (boost::shared_ptr redirect, } else { cleanup_post_view(); - _post_plugin_conn = send->GoingAway.connect (mem_fun(*this, &RouteParams_UI::redirect_going_away)); + _post_plugin_conn = send->GoingAway.connect (bind (mem_fun(*this, &RouteParams_UI::redirect_going_away), redirect)); _active_post_view = send_ui; post_redir_hpane.add2 (*_active_post_view); @@ -556,7 +567,7 @@ RouteParams_UI::redirect_selected (boost::shared_ptr redirect, if ((plugin_insert = boost::dynamic_pointer_cast (insert)) != 0) { - LadspaPluginUI *plugin_ui = new LadspaPluginUI (plugin_insert, true); + GenericPluginUI *plugin_ui = new GenericPluginUI (plugin_insert, true); if (place == PreFader) { cleanup_pre_view(); @@ -581,7 +592,7 @@ RouteParams_UI::redirect_selected (boost::shared_ptr redirect, if (place == PreFader) { cleanup_pre_view(); - _pre_plugin_conn = port_insert->GoingAway.connect (mem_fun(*this, &RouteParams_UI::redirect_going_away)); + _pre_plugin_conn = port_insert->GoingAway.connect (bind (mem_fun(*this, &RouteParams_UI::redirect_going_away), redirect)); _active_pre_view = portinsert_ui; pre_redir_hpane.pack2 (*_active_pre_view); portinsert_ui->redisplay(); @@ -589,7 +600,7 @@ RouteParams_UI::redirect_selected (boost::shared_ptr redirect, } else { cleanup_post_view(); - _post_plugin_conn = port_insert->GoingAway.connect (mem_fun(*this, &RouteParams_UI::redirect_going_away)); + _post_plugin_conn = port_insert->GoingAway.connect (bind (mem_fun(*this, &RouteParams_UI::redirect_going_away), redirect)); _active_post_view = portinsert_ui; post_redir_hpane.pack2 (*_active_post_view); portinsert_ui->redisplay(); @@ -610,9 +621,9 @@ RouteParams_UI::redirect_selected (boost::shared_ptr redirect, } void -RouteParams_UI::plugin_going_away (Plugin *plugin, Placement place) +RouteParams_UI::plugin_going_away (Placement place) { - ENSURE_GUI_THREAD(bind (mem_fun(*this, &RouteParams_UI::plugin_going_away), plugin, place)); + ENSURE_GUI_THREAD(bind (mem_fun(*this, &RouteParams_UI::plugin_going_away), place)); // delete the current view without calling finish @@ -627,18 +638,17 @@ RouteParams_UI::plugin_going_away (Plugin *plugin, Placement place) } void -RouteParams_UI::redirect_going_away (ARDOUR::Redirect *plugin) +RouteParams_UI::redirect_going_away (boost::shared_ptr redirect) { - ENSURE_GUI_THREAD(bind (mem_fun(*this, &RouteParams_UI::redirect_going_away), plugin)); + ENSURE_GUI_THREAD(bind (mem_fun(*this, &RouteParams_UI::redirect_going_away), redirect)); printf ("redirect going away\n"); // delete the current view without calling finish - if (plugin == _pre_redirect.get()) { + if (redirect == _pre_redirect) { cleanup_pre_view (false); _pre_redirect.reset ((Redirect*) 0); - } - else if (plugin == _post_redirect.get()) { + } else if (redirect == _post_redirect) { cleanup_post_view (false); _post_redirect.reset ((Redirect*) 0); } @@ -648,29 +658,33 @@ RouteParams_UI::redirect_going_away (ARDOUR::Redirect *plugin) void RouteParams_UI::update_title () { - if (_route) { - string title; - title += _route->name(); -// title += ": "; - -// if (_redirect && (_current_view == PLUGIN_CONFIG_VIEW || _current_view == SEND_CONFIG_VIEW)) { -// title += _redirect->name(); -// } -// else if (_current_view == INPUT_CONFIG_VIEW) { -// title += _("INPUT"); -// } -// else if (_current_view == OUTPUT_CONFIG_VIEW) { -// title += _("OUTPUT"); -// } + WindowTitle title(Glib::get_application_name()); + title += _("Track/Bus Inspector"); + + if (_route) { + + // title += ": "; + + // if (_redirect && (_current_view == PLUGIN_CONFIG_VIEW || _current_view == SEND_CONFIG_VIEW)) { + // title += _redirect->name(); + // } + // else if (_current_view == INPUT_CONFIG_VIEW) { + // title += _("INPUT"); + // } + // else if (_current_view == OUTPUT_CONFIG_VIEW) { + // title += _("OUTPUT"); + // } + + title_label.set_text(_route->name()); - title_label.set_text(title); + title += _route->name(); - title = _("ardour: track/bus inspector: ") + title; - set_title(title); + set_title(title.get_string()); } else { title_label.set_text(_("No Route Selected")); - set_title(_("ardour: track/bus/inspector: no route selected")); + title += _("No Route Selected"); + set_title(title.get_string()); } }