summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_strip.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-06-01 22:26:32 +0200
committerRobin Gareus <robin@gareus.org>2016-06-01 22:43:40 +0200
commit22cbc69074371e4a1e59acb914b38aa86240a05a (patch)
tree2f908c987a462ee6cdc81645ac5351cddcfee1da /gtk2_ardour/mixer_strip.cc
parent85a9ff800735a32d415ef9d6d28fac9dc64498d8 (diff)
only show "Pin Connections..." in mixer-strip if there are plugins
Diffstat (limited to 'gtk2_ardour/mixer_strip.cc')
-rw-r--r--gtk2_ardour/mixer_strip.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index 439a0ee5a5..b03fd9c2a0 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -99,6 +99,7 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, bool in_mixer)
, meter_point_button (_("pre"))
, monitor_section_button (0)
, midi_input_enable_button (0)
+ , _plugin_insert_cnt (0)
, _comment_button (_("Comments"))
, trim_control (ArdourKnob::default_elements, ArdourKnob::Flags (ArdourKnob::Detent | ArdourKnob::ArcToZero))
, _visibility (X_("mixer-element-visibility"))
@@ -1578,6 +1579,18 @@ MixerStrip::show_passthru_color ()
reset_strip_style ();
}
+
+void
+MixerStrip::help_count_plugins (boost::weak_ptr<Processor> p)
+{
+ boost::shared_ptr<Processor> processor (p.lock ());
+ if (!processor || !processor->display_to_user()) {
+ return;
+ }
+ if (boost::dynamic_pointer_cast<PluginInsert> (processor)) {
+ ++_plugin_insert_cnt;
+ }
+}
void
MixerStrip::build_route_ops_menu ()
{
@@ -1618,7 +1631,9 @@ MixerStrip::build_route_ops_menu ()
i->signal_activate().connect (sigc::hide_return (sigc::bind (sigc::mem_fun (*_route, &Route::set_strict_io), !_route->strict_io())));
}
- if (1 /* TODO IFF >= 1 plugin-insert */) {
+ _plugin_insert_cnt = 0;
+ _route->foreach_processor (sigc::mem_fun (*this, &MixerStrip::help_count_plugins));
+ if (_plugin_insert_cnt > 0) {
items.push_back (SeparatorElem());
items.push_back (MenuElem (_("Pin Connections..."), sigc::mem_fun (*this, &RouteUI::manage_pins)));
}