+ boost::shared_ptr<ARDOUR::PluginInsert> _pi;
+ boost::shared_ptr<ARDOUR::LV2Plugin> _lv2;
+ std::vector<int> _output_ports;
+ sigc::connection _screen_update_connection;
+ sigc::connection _message_update_connection;
+ Gtk::Widget* _gui_widget;
+ /** a box containing the focus, bypass, delete, save / add preset buttons etc. */
+ Gtk::HBox _ardour_buttons_box;
+ float* _values_last_sent_to_ui;
+ std::vector<ControllableRef> _controllables;
+ struct lv2_external_ui_host _external_ui_host;
+ LV2_Feature _external_ui_feature;
+ LV2_Feature _external_kxui_feature;
+ LV2UI_Request_Parameter _lv2ui_request_paramater;
+ LV2_Feature _lv2ui_request_feature;
+ struct lv2_external_ui* _external_ui_ptr;
+ LV2_Feature _parent_feature;
+ Gtk::Window* _win_ptr;
+ void* _inst;
+ typedef std::set<uint32_t> Updates;
+ Updates _updates;
+
+ static void on_external_ui_closed(void* controller);
+
+ static void write_from_ui(void* controller,
+ uint32_t port_index,
+ uint32_t buffer_size,
+ uint32_t format,
+ const void* buffer);
+
+ static void write_to_ui(void* controller,
+ uint32_t port_index,
+ uint32_t buffer_size,
+ uint32_t format,
+ const void* buffer);
+
+ static uint32_t port_index(void* controller, const char* symbol);
+
+ static void touch(void* controller,
+ uint32_t port_index,
+ bool grabbed);
+
+ static uint32_t request_parameter (void* handle, LV2_URID key);
+ void set_path_property (int,
+ const ARDOUR::ParameterDescriptor&,
+ Gtk::FileChooserDialog*);
+ std::set<uint32_t> active_parameter_requests;
+
+ void update_timeout();