repack transport hbox a bit
[ardour.git] / gtk2_ardour / plugin_ui.h
index 16ecc4bd15fe5123b266db7f0924f201923db8c8..20282c4cfaacf35f4336ae030b5e638e8ebbe8c4 100644 (file)
@@ -53,6 +53,7 @@ namespace ARDOUR {
        class PluginInsert;
        class Plugin;
        class VSTPlugin;
+       class LXVSTPlugin;
        class IOProcessor;
        class AUPlugin;
 }
@@ -71,6 +72,7 @@ namespace Gtkmm2ext {
 
 class LatencyGUI;
 class ArdourDialog;
+class PluginEqGui;
 
 class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionList
 {
@@ -119,6 +121,8 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL
        ArdourDialog* latency_dialog;
 
        Gtk::Expander plugin_analysis_expander;
+       PluginEqGui* eqgui;
+       Gtk::Requisition pre_eq_size;
 
        Gtk::Image* focus_out_image;
        Gtk::Image* focus_in_image;
@@ -201,34 +205,34 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
        /* FIXME: Unify with AutomationController */
        struct ControlUI : public Gtk::HBox {
 
+               uint32_t port_index;
                boost::shared_ptr<ARDOUR::AutomationControl> control;
 
                Evoral::Parameter parameter() { return control->parameter(); }
 
-           /* input */
+               /* input */
 
-           Gtk::ComboBoxText*                      combo;
-           std::map<std::string, float>*           combo_map;
-           Gtk::ToggleButton*                      button;
-           boost::shared_ptr<AutomationController> controller;
-           Gtkmm2ext::ClickBox*                    clickbox;
-           Gtk::Label                              label;
-           bool                                    logarithmic;
-           bool                                    update_pending;
-           char                                    ignore_change;
-           Gtk::Button                             automate_button;
+               Gtk::ComboBoxText*                      combo;
+               boost::shared_ptr<ARDOUR::Plugin::ScalePoints> combo_map;
+               Gtk::ToggleButton*                      button;
+               boost::shared_ptr<AutomationController> controller;
+               Gtkmm2ext::ClickBox*                    clickbox;
+               Gtk::Label                              label;
+               bool                                    update_pending;
+               char                                    ignore_change;
+               Gtk::Button                             automate_button;
 
-           /* output */
+               /* output */
 
-           Gtk::EventBox *display;
-           Gtk::Label*    display_label;
+               Gtk::EventBox* display;
+               Gtk::Label*    display_label;
 
-               Gtk::HBox  *    hbox;
-               Gtk::VBox  *    vbox;
-           MeterInfo  *    meterinfo;
+               Gtk::HBox    hbox;
+               Gtk::VBox    vbox;
+               MeterInfo*     meterinfo;
 
-           ControlUI ();
-           ~ControlUI();
+               ControlUI ();
+               ~ControlUI ();
        };
 
        std::vector<ControlUI*>   input_controls;
@@ -238,7 +242,6 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
 
        void build ();
        ControlUI* build_control_ui (guint32 port_index, boost::shared_ptr<ARDOUR::AutomationControl>);
-       std::vector<std::string> setup_scale_values(guint32 port_index, ControlUI* cui);
        void ui_parameter_changed (ControlUI* cui);
        void toggle_parameter_changed (ControlUI* cui);
        void update_control_display (ControlUI* cui);
@@ -259,7 +262,10 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
 class PluginUIWindow : public Gtk::Window
 {
   public:
-       PluginUIWindow (Gtk::Window*, boost::shared_ptr<ARDOUR::PluginInsert> insert, bool scrollable=false);
+       PluginUIWindow (Gtk::Window*,
+                       boost::shared_ptr<ARDOUR::PluginInsert> insert,
+                       bool scrollable=false,
+                       bool editor=true);
        ~PluginUIWindow ();
 
        PlugUIBase& pluginui() { return *_pluginui; }
@@ -293,11 +299,12 @@ class PluginUIWindow : public Gtk::Window
        void plugin_going_away ();
 
        bool create_vst_editor (boost::shared_ptr<ARDOUR::PluginInsert>);
+       bool create_lxvst_editor(boost::shared_ptr<ARDOUR::PluginInsert>);
        bool create_audiounit_editor (boost::shared_ptr<ARDOUR::PluginInsert>);
        bool create_lv2_editor (boost::shared_ptr<ARDOUR::PluginInsert>);
 };
 
-#ifdef AUDIOUNITS
+#ifdef AUDIOUNIT_SUPPORT
 /* this function has to be in a .mm file */
 extern PlugUIBase* create_au_gui (boost::shared_ptr<ARDOUR::PluginInsert>, Gtk::VBox**);
 #endif