X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fplugin_ui.h;h=895d8681ab1dbcb0b9501bbc8602a73357dfed4f;hb=5a8553f02cb9bcbd75b797c6260539f7a8f8e47a;hp=6ae548d8fbe0a43c65b6ce7260ed2b3e31068df8;hpb=91fac4c96dc6210dcc056da70dc608700d7eb570;p=ardour.git diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index 6ae548d8fb..895d8681ab 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -51,6 +51,7 @@ #include "ardour_button.h" #include "ardour_dropdown.h" +#include "ardour_spinner.h" #include "ardour_window.h" #include "automation_controller.h" @@ -125,6 +126,8 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL ArdourButton save_button; /** a button to delete the current preset (if it is a user one) */ ArdourButton delete_button; + /** a button to delete the reset the plugin params */ + ArdourButton reset_button; /** a button to bypass the plugin */ ArdourButton bypass_button; /** a button to acquire keyboard focus */ @@ -143,14 +146,13 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL ArdourButton automation_write_all_button; /** a button which sets all controls' automation setting to Touch */ ArdourButton automation_touch_all_button; - + void set_latency_label (); LatencyGUI* latency_gui; ArdourWindow* latency_dialog; PluginEqGui* eqgui; - Gtk::Requisition pre_eq_size; Gtk::Image* focus_out_image; Gtk::Image* focus_in_image; @@ -160,13 +162,14 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL void add_plugin_setting (); void save_plugin_setting (); void delete_plugin_setting (); + void reset_plugin_parameters (); bool focus_toggled(GdkEventButton*); bool bypass_button_release(GdkEventButton*); void toggle_description (); void toggle_plugin_analysis (); void processor_active_changed (boost::weak_ptr p); void plugin_going_away (); - virtual void parameter_changed (uint32_t, float); + void automation_state_changed (); void preset_added_or_removed (); void update_preset_modified (); @@ -191,17 +194,8 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox private: Gtk::VBox main_contents; - Gtk::HBox settings_box; Gtk::HBox hpacker; - - Gtk::Table button_table; - Gtk::Table output_table; - - Gtk::ScrolledWindow scroller; - Gtk::Adjustment hAdjustment; - Gtk::Adjustment vAdjustment; - Gtk::Viewport scroller_view; Gtk::Menu* automation_menu; gint prefheight; @@ -226,11 +220,6 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox } }; - static const int32_t initial_button_rows = 12; - static const int32_t initial_button_cols = 1; - static const int32_t initial_output_rows = 1; - static const int32_t initial_output_cols = 4; - /* FIXME: Unify with AutomationController */ struct ControlUI : public Gtk::HBox { @@ -241,16 +230,19 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox /* input */ - Gtk::ComboBoxText* combo; boost::shared_ptr scale_points; - Gtk::ToggleButton* button; boost::shared_ptr controller; - Gtkmm2ext::ClickBox* clickbox; + + ArdourButton automate_button; Gtk::Label label; - bool update_pending; - char ignore_change; - Gtk::Button automate_button; + Gtk::ComboBoxText* combo; + Gtkmm2ext::ClickBox* clickbox; Gtk::FileChooserButton* file_button; + ArdourSpinner* spin_box; + + bool button; + bool update_pending; + bool ignore_change; /* output */ @@ -263,6 +255,10 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox ControlUI (const Evoral::Parameter& param); ~ControlUI (); + + /* layout */ + Gtk::Table* knobtable; + int x0, x1, y0, y1; }; std::vector input_controls; @@ -272,16 +268,18 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox void output_update(); void build (); + void automatic_layout (const std::vector& control_uis); + void custom_layout (const std::vector& control_uis); + ControlUI* build_control_ui (const Evoral::Parameter& param, const ARDOUR::ParameterDescriptor& desc, boost::shared_ptr mcontrol, float value, - bool is_input); + bool is_input, + bool use_knob = false); void ui_parameter_changed (ControlUI* cui); - void toggle_parameter_changed (ControlUI* cui); void update_control_display (ControlUI* cui); - void control_port_toggled (ControlUI* cui); void control_combo_changed (ControlUI* cui); void astate_clicked (ControlUI*);