From: Robin Gareus Date: Thu, 11 Jul 2013 09:36:38 +0000 (+0200) Subject: handle aux-send processor-box action X-Git-Tag: 3.3~51 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=b649f0a21b711c68cba5e26945650fd36f657268;p=ardour.git handle aux-send processor-box action fixes http://tracker.ardour.org/view.php?id=5574 --- diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index 265f94c53b..495845d2d4 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -2031,7 +2031,7 @@ ProcessorBox::processor_can_be_edited (boost::shared_ptr processor) } if ( - (boost::dynamic_pointer_cast (processor) && !boost::dynamic_pointer_cast (processor))|| + boost::dynamic_pointer_cast (processor) || boost::dynamic_pointer_cast (processor) || boost::dynamic_pointer_cast (processor) || boost::dynamic_pointer_cast (processor) @@ -2086,17 +2086,6 @@ ProcessorBox::get_editor_window (boost::shared_ptr processor, bool us if (boost::dynamic_pointer_cast (processor) == 0) { gidget = new SendUIWindow (send, _session); - - } else { - /* assign internal send to main fader */ - - if (_parent_strip) { - if (_parent_strip->current_delivery() == send) { - _parent_strip->revert_to_default_display (); - } else { - _parent_strip->show_send(send); - } - } } } else if ((retrn = boost::dynamic_pointer_cast (processor)) != 0) { @@ -2444,13 +2433,34 @@ ProcessorBox::rb_edit () _current_processor_box->for_selected_processors (&ProcessorBox::edit_processor); } +bool +ProcessorBox::edit_aux_send (boost::shared_ptr processor) +{ + if (boost::dynamic_pointer_cast (processor) == 0) { + return false; + } + + if (_parent_strip) { + boost::shared_ptr send = boost::dynamic_pointer_cast (processor); + if (_parent_strip->current_delivery() == send) { + _parent_strip->revert_to_default_display (); + } else { + _parent_strip->show_send(send); + } + } + return true; +} + void ProcessorBox::edit_processor (boost::shared_ptr processor) { if (!processor) { return; } - + if (edit_aux_send (processor)) { + return; + } + ProcessorWindowProxy* proxy = find_window_proxy (processor); if (proxy) { @@ -2465,7 +2475,10 @@ ProcessorBox::generic_edit_processor (boost::shared_ptr processor) if (!processor) { return; } - + if (edit_aux_send (processor)) { + return; + } + ProcessorWindowProxy* proxy = find_window_proxy (processor); if (proxy) { diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h index d4d1456e09..a72eb3223d 100644 --- a/gtk2_ardour/processor_box.h +++ b/gtk2_ardour/processor_box.h @@ -258,6 +258,8 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD void hide_things (); + bool edit_aux_send(boost::shared_ptr); + /* Everything except a WindowProxy object should use this to get the window */ Gtk::Window* get_processor_ui (boost::shared_ptr) const;