Don't add a plugin menu entry for the Amp processor. Desensitize the plugin menu...
authorCarl Hetherington <carl@carlh.net>
Fri, 26 Jun 2009 13:26:08 +0000 (13:26 +0000)
committerCarl Hetherington <carl@carlh.net>
Fri, 26 Jun 2009 13:26:08 +0000 (13:26 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@5279 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/route_time_axis.cc
gtk2_ardour/route_time_axis.h

index fd1246bdf5579e3d247af22d94f37d0bd8c04dfd..a2451b5bfe78f923a29bd3346beda4d155568b92 100644 (file)
@@ -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<Evoral::Parameter, RouteAutomationNode*>::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<Processor> p)
+RouteTimeAxisView::add_processor_to_subplugin_menu (boost::weak_ptr<Processor> p, boost::weak_ptr<Route> r)
 {
        boost::shared_ptr<Processor> processor (p.lock ());
-       if (!processor) {
+       boost::shared_ptr<Route> 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<ProcessorAutomationInfo*>::iterator i = processor_automation.begin(); i != processor_automation.end(); ) {
@@ -2432,4 +2439,3 @@ RouteTimeAxisView::set_route_group_to_new ()
                delete g;
        }
 }
-
index 34896e46398604824a5b0551d1f463dc7deb176c..ba81fc8bfe86fe3d6d2b3c4b1ef920056d7ece41 100644 (file)
@@ -188,7 +188,7 @@ protected:
 
        void processors_changed ();
        
-       void add_processor_to_subplugin_menu (boost::weak_ptr<ARDOUR::Processor>);
+       void add_processor_to_subplugin_menu (boost::weak_ptr<ARDOUR::Processor>, boost::weak_ptr<ARDOUR::Route>);
        void remove_processor_automation_node (ProcessorAutomationNode* pan);
 
        void processor_menu_item_toggled (RouteTimeAxisView::ProcessorAutomationInfo*,