bundled LV2 plugin build and deployment
[ardour.git] / gtk2_ardour / processor_box.h
index c279ffa91769319f2c5003e9c791482850624032..41bc68281f8fcb0ae184687fbf2deac1a23b1464 100644 (file)
@@ -79,6 +79,7 @@ class ProcessorWindowProxy : public WM::ProxyBase
 {
   public:
     ProcessorWindowProxy (std::string const &, ProcessorBox *, boost::weak_ptr<ARDOUR::Processor>);
+    ~ProcessorWindowProxy();
 
     Gtk::Window* get (bool create = false);
     
@@ -88,13 +89,23 @@ class ProcessorWindowProxy : public WM::ProxyBase
 
     ARDOUR::SessionHandlePtr* session_handle();
     void toggle();
+    void set_custom_ui_mode(bool use_custom) { want_custom = use_custom; }
 
     bool marked;
+    bool valid () const;
+
+    void set_state (const XMLNode&);
+    XMLNode& get_state () const;
 
   private:
     ProcessorBox* _processor_box;
     boost::weak_ptr<ARDOUR::Processor> _processor;
     bool is_custom;
+    bool want_custom;
+    bool _valid;
+
+    void processor_going_away ();
+    PBD::ScopedConnection going_away_connection;
 };
 
 class ProcessorEntry : public Gtkmm2ext::DnDVBoxChild, public sigc::trackable
@@ -253,11 +264,13 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
 
        void hide_things ();
 
+       bool edit_aux_send(boost::shared_ptr<ARDOUR::Processor>);
+
         /* Everything except a WindowProxy object should use this to get the window */
        Gtk::Window* get_processor_ui (boost::shared_ptr<ARDOUR::Processor>) const;
 
         /* a WindowProxy object can use this */
-        Gtk::Window* get_editor_window (boost::shared_ptr<ARDOUR::Processor>);
+        Gtk::Window* get_editor_window (boost::shared_ptr<ARDOUR::Processor>, bool);
         Gtk::Window* get_generic_editor_window (boost::shared_ptr<ARDOUR::Processor>);
 
         void edit_processor (boost::shared_ptr<ARDOUR::Processor>);
@@ -296,6 +309,8 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
 
        void route_going_away ();
 
+        bool is_editor_mixer_strip() const;
+
        Gtkmm2ext::DnDVBox<ProcessorEntry> processor_display;
        Gtk::ScrolledWindow    processor_scroller;
 
@@ -397,7 +412,9 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        void route_property_changed (const PBD::PropertyChange&);
        std::string generate_processor_title (boost::shared_ptr<ARDOUR::PluginInsert> pi);
 
-       std::list<ProcessorWindowProxy*> _processor_window_info;
+        typedef std::list<ProcessorWindowProxy*> ProcessorWindowProxies;
+        ProcessorWindowProxies _processor_window_info;
+
         ProcessorWindowProxy* find_window_proxy (boost::shared_ptr<ARDOUR::Processor>) const;
 
        void set_processor_ui (boost::shared_ptr<ARDOUR::Processor>, Gtk::Window *);