diff --git a/gtk2_ardour/lv2_plugin_ui.cc b/gtk2_ardour/lv2_plugin_ui.cc index 0c4ea8f0d9..177d27fa47 100644 --- a/gtk2_ardour/lv2_plugin_ui.cc +++ b/gtk2_ardour/lv2_plugin_ui.cc @@ -57,8 +57,12 @@ LV2PluginUI::write_from_ui(void* controller, ac->set_value(*(const float*)buffer); } } else if (format == me->_lv2->atom_eventTransfer()) { - me->_lv2->write_from_ui(port_index, format, buffer_size, - (const uint8_t*)buffer); + + const int cnt = me->_pi->get_count(); + for (int i=0; i < cnt; i++ ) { + boost::shared_ptr lv2i = boost::dynamic_pointer_cast (me->_pi->plugin(i)); + lv2i->write_from_ui(port_index, format, buffer_size, (const uint8_t*)buffer); + } } } @@ -177,6 +181,7 @@ LV2PluginUI::output_update() LV2PluginUI::LV2PluginUI(boost::shared_ptr pi, boost::shared_ptr lv2p) : PlugUIBase(pi) + , _pi(pi) , _lv2(lv2p) , _gui_widget(NULL) , _ardour_buttons_box(NULL) diff --git a/gtk2_ardour/lv2_plugin_ui.h b/gtk2_ardour/lv2_plugin_ui.h index b941d613bc..9bf8c3d92b 100644 --- a/gtk2_ardour/lv2_plugin_ui.h +++ b/gtk2_ardour/lv2_plugin_ui.h @@ -36,6 +36,7 @@ #include "plugin_ui.h" #ifdef LV2_SUPPORT +#include "ardour/plugin_insert.h" #include "lv2_external_ui.h" @@ -66,6 +67,7 @@ class LV2PluginUI : public PlugUIBase, public Gtk::VBox typedef boost::shared_ptr ControllableRef; + boost::shared_ptr _pi; boost::shared_ptr _lv2; std::vector _output_ports; sigc::connection _screen_update_connection;