X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpanner_ui.h;h=de93d49956f0aee7785e591f6ddab43c51e5f453;hb=51bcb789e33e436d014ec465622c1e32528c1a9c;hp=bf2d4bb0c46cf2bc3ca336b58a289a452e711add;hpb=c5e35789ed5df60a248bf513bae0a7dab9b1411b;p=ardour.git diff --git a/gtk2_ardour/panner_ui.h b/gtk2_ardour/panner_ui.h index bf2d4bb0c4..de93d49956 100644 --- a/gtk2_ardour/panner_ui.h +++ b/gtk2_ardour/panner_ui.h @@ -24,7 +24,6 @@ #include #include -#include #include #include #include @@ -38,12 +37,14 @@ #include "enums.h" class Panner2d; -class PannerBar; class Panner2dWindow; +class StereoPanner; +class MonoPanner; namespace ARDOUR { class Session; class Panner; + class PannerShell; class Delivery; class AutomationControl; } @@ -63,9 +64,9 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr PannerUI (ARDOUR::Session*); ~PannerUI (); - virtual void set_panner (boost::shared_ptr); + virtual void set_panner (boost::shared_ptr, boost::shared_ptr); - void panner_changed (void *); + void panshell_changed (); void update_pan_sensitive (); void update_gain_sensitive (); @@ -76,16 +77,15 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr void effective_pan_display (); void set_meter_strip_name (std::string name); - boost::shared_ptr get_controllable(); - void set_mono (bool); void on_size_allocate (Gtk::Allocation &); - + static void setup_slider_pix (); private: friend class MixerStrip; + boost::shared_ptr _panshell; boost::shared_ptr _panner; PBD::ScopedConnectionList connections; PBD::ScopedConnectionList _pan_control_connections; @@ -93,7 +93,7 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr bool ignore_toggle; bool in_pan_update; int _current_nouts; - int _current_npans; + int _current_nins; static const int pan_bar_height; @@ -101,35 +101,19 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr Panner2dWindow* big_window; Gtk::VBox pan_bar_packer; - Gtk::Adjustment hAdjustment; - Gtk::Adjustment vAdjustment; - Gtk::Viewport panning_viewport; - Gtk::EventBox panning_up; - Gtk::Arrow panning_up_arrow; - Gtk::EventBox panning_down; - Gtk::Arrow panning_down_arrow; Gtk::VBox pan_vbox; Gtk::VBox poswidth_box; Width _width; - Gtk::Adjustment _position_adjustment; - Gtk::Adjustment _width_adjustment; - Gtkmm2ext::BarController* _position_fader; - Gtkmm2ext::BarController* _width_fader; - static Glib::RefPtr _poswidth_slider; + StereoPanner* _stereo_panner; + MonoPanner* _mono_panner; + bool _ignore_width_change; bool _ignore_position_change; void width_adjusted (); void show_width (); void position_adjusted (); void show_position (); - - Gtk::ToggleButton panning_link_button; - Gtk::Button panning_link_direction_button; - Gtk::HBox panning_link_box; - - bool panning_link_button_press (GdkEventButton*); - bool panning_link_button_release (GdkEventButton*); Gtk::Menu* pan_astate_menu; Gtk::Menu* pan_astyle_menu; @@ -137,16 +121,7 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr Gtk::Button pan_automation_style_button; Gtk::ToggleButton pan_automation_state_button; - void panning_link_direction_clicked (); - - std::vector pan_adjustments; - std::vector pan_bars; - - void pan_adjustment_changed (uint32_t which); void pan_value_changed (uint32_t which); - void update_pan_bars (bool only_if_aplay); - void update_pan_linkage (); - void update_pan_state (); void build_astate_menu (); void build_astyle_menu (); @@ -158,17 +133,14 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr gint start_pan_touch (GdkEventButton*); gint end_pan_touch (GdkEventButton*); - bool pan_button_event (GdkEventButton*, uint32_t which); - - void connect_to_pan_control (uint32_t); + bool pan_button_event (GdkEventButton*); Gtk::Menu* pan_menu; Gtk::CheckMenuItem* bypass_menu_item; - void build_pan_menu (uint32_t which); - void pan_mute (uint32_t which); - void pan_reset (uint32_t); - void pan_reset_all (); + void build_pan_menu (); + void pan_reset (); void pan_bypass_toggle (); + void pan_edit (); void pan_automation_state_changed(); void pan_automation_style_changed(); @@ -186,10 +158,6 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr void start_touch (boost::weak_ptr); void stop_touch (boost::weak_ptr); - - void bar_spinner_activate (bool); - /** true if any of our PannerBars are currently using a SpinButton to modify value */ - bool _bar_spinner_active; }; #endif /* __ardour_gtk_panner_ui_h__ */