From 564e16ca0755ffa4f0edac64edc3d2d61fe211cd Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 26 Jun 2009 13:26:08 +0000 Subject: [PATCH] Don't add a plugin menu entry for the Amp processor. Desensitize the plugin menu if it is empty. git-svn-id: svn://localhost/ardour2/branches/3.0@5279 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/route_time_axis.cc | 16 +++++++++++----- gtk2_ardour/route_time_axis.h | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index fd1246bdf5..a2451b5bfe 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -289,7 +289,7 @@ RouteTimeAxisView::post_construct () update_diskstream_display (); subplugin_menu.items().clear (); - _route->foreach_processor (mem_fun (*this, &RouteTimeAxisView::add_processor_to_subplugin_menu)); + _route->foreach_processor (bind (mem_fun (*this, &RouteTimeAxisView::add_processor_to_subplugin_menu), _route)); _route->foreach_processor (mem_fun (*this, &RouteTimeAxisView::add_existing_processor_automation_curves)); reset_processor_automation_curves (); } @@ -469,6 +469,7 @@ RouteTimeAxisView::build_automation_action_menu () subplugin_menu.detach(); automation_items.push_back (MenuElem (_("Plugins"), subplugin_menu)); + automation_items.back().set_sensitive (!subplugin_menu.items().empty()); map::iterator i; for (i = _automation_tracks.begin(); i != _automation_tracks.end(); ++i) { @@ -2026,10 +2027,16 @@ RouteTimeAxisView::add_automation_child(Evoral::Parameter param, boost::shared_p void -RouteTimeAxisView::add_processor_to_subplugin_menu (boost::weak_ptr p) +RouteTimeAxisView::add_processor_to_subplugin_menu (boost::weak_ptr p, boost::weak_ptr r) { boost::shared_ptr processor (p.lock ()); - if (!processor) { + boost::shared_ptr route (r.lock ()); + if (!processor || !route) { + return; + } + + if (processor == route->amp ()) { + /* don't add an entry for the amp processor */ return; } @@ -2162,7 +2169,7 @@ RouteTimeAxisView::processors_changed () subplugin_menu.items().clear (); - _route->foreach_processor (mem_fun (*this, &RouteTimeAxisView::add_processor_to_subplugin_menu)); + _route->foreach_processor (bind (mem_fun (*this, &RouteTimeAxisView::add_processor_to_subplugin_menu), _route)); _route->foreach_processor (mem_fun (*this, &RouteTimeAxisView::add_existing_processor_automation_curves)); for (list::iterator i = processor_automation.begin(); i != processor_automation.end(); ) { @@ -2432,4 +2439,3 @@ RouteTimeAxisView::set_route_group_to_new () delete g; } } - diff --git a/gtk2_ardour/route_time_axis.h b/gtk2_ardour/route_time_axis.h index 34896e4639..ba81fc8bfe 100644 --- a/gtk2_ardour/route_time_axis.h +++ b/gtk2_ardour/route_time_axis.h @@ -188,7 +188,7 @@ protected: void processors_changed (); - void add_processor_to_subplugin_menu (boost::weak_ptr); + void add_processor_to_subplugin_menu (boost::weak_ptr, boost::weak_ptr); void remove_processor_automation_node (ProcessorAutomationNode* pan); void processor_menu_item_toggled (RouteTimeAxisView::ProcessorAutomationInfo*,