Move panner bypass state up to the PannerShell so that it is preserved even when...
[ardour.git] / gtk2_ardour / lv2_plugin_ui.h
index e267ecab6c2ccad3e313b6757d1d9a70ce9c462a..b9d644081c775680beca1ad87bbc1898caf8cddc 100644 (file)
@@ -1,6 +1,6 @@
 /*
-    Copyright (C) 2008 Paul Davis
-    Author: Dave Robillard
+    Copyright (C) 2008-2011 Paul Davis
+    Author: David Robillard
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -36,7 +36,7 @@
 #include "ardour/types.h"
 #include "plugin_ui.h"
 
-#ifdef HAVE_SLV2
+#ifdef LV2_SUPPORT
 
 #include "lv2_external_ui.h"
 
@@ -61,14 +61,13 @@ class LV2PluginUI : public PlugUIBase, public Gtk::VBox
   private:
 
        void parameter_changed (uint32_t, float);
-       
+
        boost::shared_ptr<ARDOUR::LV2Plugin> _lv2;
        std::vector<int> _output_ports;
        sigc::connection _screen_update_connection;
 
-       Gtk::Widget*   _gui_widget;
-       SLV2UIInstance _inst;
-       float*         _values;
+       Gtk::Widget* _gui_widget;
+       float*       _values;
        std::vector<boost::shared_ptr<ARDOUR::AutomationControl> > _controllables;
 
        struct lv2_external_ui_host _external_ui_host;
@@ -76,16 +75,19 @@ class LV2PluginUI : public PlugUIBase, public Gtk::VBox
        struct lv2_external_ui* _external_ui_ptr;
        Gtk::Window* _win_ptr;
 
-       static void on_external_ui_closed(LV2UI_Controller controller);
+       static void on_external_ui_closed(void* controller);
+
+       void* _inst;
 
        static void lv2_ui_write(
-                       LV2UI_Controller controller,
-                       uint32_t         port_index,
-                       uint32_t         buffer_size,
-                       uint32_t         format,
-                       const void*      buffer);
+                       void*       controller,
+                       uint32_t    port_index,
+                       uint32_t    buffer_size,
+                       uint32_t    format,
+                       const void* buffer);
 
        void lv2ui_instantiate(const std::string& title);
+       void lv2ui_free();
 
        void parameter_update(uint32_t, float);
        bool configure_handler (GdkEventConfigure*);
@@ -97,7 +99,7 @@ class LV2PluginUI : public PlugUIBase, public Gtk::VBox
        virtual void on_window_hide();
 };
 
-#endif // HAVE_SLV2
+#endif // LV2_SUPPORT
 
 #endif /* __ardour_lv2_plugin_ui_h__ */