X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpanner_ui.h;h=0e16d01a64601a8c8157c10d6fafd618d6343908;hb=b5fcd80ed6bb1dfd45d083f12a972ed88366ca58;hp=95e1e6c688e565dbfbcf1a30657151c5ffa845f0;hpb=e6eb059576eefd9a26c177627ae7dd3ba2feb727;p=ardour.git diff --git a/gtk2_ardour/panner_ui.h b/gtk2_ardour/panner_ui.h index 95e1e6c688..0e16d01a64 100644 --- a/gtk2_ardour/panner_ui.h +++ b/gtk2_ardour/panner_ui.h @@ -33,6 +33,8 @@ #include #include +#include "ardour/session_handle.h" + #include "enums.h" class Panner2d; @@ -43,7 +45,9 @@ namespace ARDOUR { class Session; class Panner; class Delivery; + class AutomationControl; } + namespace Gtkmm2ext { class FastMeter; } @@ -53,15 +57,15 @@ namespace Gtk { class Menuitem; } -class PannerUI : public Gtk::HBox +class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr { public: - PannerUI (ARDOUR::Session&); + PannerUI (ARDOUR::Session*); ~PannerUI (); virtual void set_panner (boost::shared_ptr); - void pan_changed (void *); + void panner_changed (void *); void update_pan_sensitive (); void update_gain_sensitive (); @@ -74,19 +78,23 @@ class PannerUI : public Gtk::HBox void set_meter_strip_name (std::string name); boost::shared_ptr get_controllable(); + void set_mono (bool); + private: friend class MixerStrip; boost::shared_ptr _panner; - ARDOUR::Session& _session; - std::vector connections; + PBD::ScopedConnectionList connections; + PBD::ScopedConnectionList _pan_control_connections; bool ignore_toggle; bool in_pan_update; + int _current_nouts; + int _current_npans; static const int pan_bar_height; - Panner2d* panner; + Panner2d* twod_panner; ///< 2D panner, or 0 Panner2dWindow* big_window; Gtk::VBox pan_bar_packer; @@ -126,8 +134,6 @@ class PannerUI : public Gtk::HBox void build_astate_menu (); void build_astyle_menu (); - void panner_changed (); - void hide_pans (); void panner_moved (int which); @@ -138,6 +144,8 @@ class PannerUI : public Gtk::HBox bool pan_button_event (GdkEventButton*, uint32_t which); + void connect_to_pan_control (uint32_t); + Gtk::Menu* pan_menu; Gtk::CheckMenuItem* bypass_menu_item; void build_pan_menu (uint32_t which); @@ -159,6 +167,9 @@ class PannerUI : public Gtk::HBox std::string astyle_string (ARDOUR::AutoStyle); std::string short_astyle_string (ARDOUR::AutoStyle); std::string _astyle_string (ARDOUR::AutoStyle, bool); + + void start_touch (boost::weak_ptr); + void stop_touch (boost::weak_ptr); }; #endif /* __ardour_gtk_panner_ui_h__ */