C++ implementation of fan_out_instrument.lua
[ardour.git] / gtk2_ardour / mixer_strip.cc
index 935542e74ef7e4f4081ac36d81d830bdcf0b9da8..12a0d837ad7424128b39b3738d17e32bf78ccee9 100644 (file)
@@ -1639,7 +1639,13 @@ MixerStrip::help_count_plugins (boost::weak_ptr<Processor> p)
        if (!processor || !processor->display_to_user()) {
                return;
        }
-       if (boost::dynamic_pointer_cast<PluginInsert> (processor)) {
+       boost::shared_ptr<PluginInsert> pi = boost::dynamic_pointer_cast<PluginInsert> (processor);
+#ifdef MIXBUS
+       if (pi && pi->is_channelstrip ()) {
+               return;
+       }
+#endif
+       if (pi) {
                ++_plugin_insert_cnt;
        }
 }
@@ -1690,6 +1696,11 @@ MixerStrip::build_route_ops_menu ()
                items.push_back (MenuElem (_("Pin Connections..."), sigc::mem_fun (*this, &RouteUI::manage_pins)));
        }
 
+       if (_route->the_instrument () && _route->the_instrument ()->output_streams().n_audio() > 2) {
+               // TODO ..->n_audio() > 1 && separate_output_groups) hard to check here every time.
+               items.push_back (MenuElem (_("Fan Out Instrument"), sigc::bind (sigc::mem_fun (*this, &RouteUI::fan_out), false)));
+       }
+
        items.push_back (SeparatorElem());
        items.push_back (MenuElem (_("Adjust Latency..."), sigc::mem_fun (*this, &RouteUI::adjust_latency)));