X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmixer_strip.h;h=6aac87850d1ccd94ad3b8fe9ac18bc747e06319b;hb=e12432cc632125821d6ed192d129ef385fb25002;hp=863aab2ee6e5b756b991bd885781c4f8ab7093cc;hpb=a3583c89b20160de154d05ff4c3e2f2bd0ff44df;p=ardour.git diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index 863aab2ee6..6aac87850d 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -53,6 +53,7 @@ #include "enums.h" #include "processor_box.h" #include "ardour_dialog.h" +#include "visibility_group.h" namespace ARDOUR { class Route; @@ -91,7 +92,6 @@ class MixerStrip : public RouteUI, public Gtk::EventBox void fast_update (); void set_embedded (bool); - ARDOUR::RouteGroup* route_group() const; void set_route (boost::shared_ptr); void set_button_names (); void show_send (boost::shared_ptr); @@ -115,9 +115,21 @@ class MixerStrip : public RouteUI, public Gtk::EventBox /** The delivery that we are handling the level for with our fader has changed */ PBD::Signal1 > DeliveryChanged; - static sigc::signal > SwitchIO; static PBD::Signal1 CatchDeletion; + std::string state_id() const; + + void parameter_changed (std::string); + void route_active_changed (); + + void copy_processors (); + void cut_processors (); + void paste_processors (); + void select_all_processors (); + void delete_processors (); + void toggle_processors (); + void ab_plugins (); + protected: friend class Mixer_UI; void set_packed (bool yn); @@ -126,11 +138,6 @@ class MixerStrip : public RouteUI, public Gtk::EventBox void set_selected(bool yn); void set_stuff_from_route (); - bool on_leave_notify_event (GdkEventCrossing* ev); - bool on_enter_notify_event (GdkEventCrossing* ev); - bool on_key_press_event (GdkEventKey* ev); - bool on_key_release_event (GdkEventKey* ev); - private: Mixer_UI& _mixer; @@ -159,15 +166,14 @@ class MixerStrip : public RouteUI, public Gtk::EventBox GainMeter gpm; PannerUI panners; + Glib::RefPtr button_size_group; + Gtk::Table button_table; - Gtk::Table solo_led_table; - Gtk::HBox below_panner_box; + Gtk::Table rec_solo_table; + Gtk::Table top_button_table; Gtk::Table middle_button_table; Gtk::Table bottom_button_table; - Gtk::Label* _iso_label; - Gtk::Label* _safe_label; - Gtk::Button gain_unit_button; Gtk::Label gain_unit_label; Gtk::Button meter_point_button; @@ -198,10 +204,12 @@ class MixerStrip : public RouteUI, public Gtk::EventBox ArdourDialog* comment_window; Gtk::TextView* comment_area; + Gtk::Button _comment_button; void comment_editor_done_editing (); void setup_comment_editor (); void toggle_comment (); + void setup_comment_button (); Gtk::Button group_button; Gtk::Label group_label; @@ -227,7 +235,6 @@ class MixerStrip : public RouteUI, public Gtk::EventBox void diskstream_changed (); Gtk::Menu *send_action_menu; - Gtk::CheckMenuItem* _comment_menu_item; Gtk::MenuItem* rename_menu_item; void build_send_action_menu (); @@ -262,8 +269,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox Gtk::Style *passthru_style; - void route_gui_changed (std::string, void*); - void show_route_color (); + void route_color_changed (); void show_passthru_color (); void name_changed (); @@ -277,7 +283,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox void engine_running(); void engine_stopped(); - void switch_io (boost::shared_ptr); + virtual void bus_send_display_changed (boost::shared_ptr); void set_current_delivery (boost::shared_ptr); boost::shared_ptr _current_delivery; @@ -290,7 +296,22 @@ class MixerStrip : public RouteUI, public Gtk::EventBox static int scrollbar_height; void update_io_button (boost::shared_ptr route, Width width, bool input_button); - void port_connected_or_disconnected (ARDOUR::Port *, ARDOUR::Port *); + void port_connected_or_disconnected (boost::weak_ptr, boost::weak_ptr); + + /** A VisibilityGroup to manage the visibility of some of our controls. + * We fill it with the controls that are being managed, using the same names + * as those used with _mixer_strip_visibility in RCOptionEditor. Then + * this VisibilityGroup is configured by changes to the RC variable + * mixer-strip-visibility, which happen when the user makes changes in + * the RC option editor. + */ + VisibilityGroup _visibility; + boost::optional override_solo_visibility () const; + + PBD::ScopedConnection _config_connection; + + void add_input_port (ARDOUR::DataType); + void add_output_port (ARDOUR::DataType); static std::string meter_point_string (ARDOUR::MeterPoint); };