X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpanner_ui.h;h=f3986e24a94b3e067f3bff157c52049ddd1cb32d;hb=61d26e5678de2738120c5be9832d4e9c480d3c47;hp=3d714d92531d0b1bf62222019b9a10d827d0c630;hpb=1b0b7849eea034f8809dea31419159724386c2db;p=ardour.git diff --git a/gtk2_ardour/panner_ui.h b/gtk2_ardour/panner_ui.h index 3d714d9253..f3986e24a9 100644 --- a/gtk2_ardour/panner_ui.h +++ b/gtk2_ardour/panner_ui.h @@ -29,15 +29,11 @@ #include #include -#include -#include - #include "ardour/session_handle.h" #include "enums.h" class Panner2d; -class PannerBar; class Panner2dWindow; class StereoPanner; class MonoPanner; @@ -45,12 +41,9 @@ class MonoPanner; namespace ARDOUR { class Session; class Panner; + class PannerShell; class Delivery; - class AutomationControl; -} - -namespace Gtkmm2ext { - class FastMeter; + class AutomationControl; } namespace Gtk { @@ -60,32 +53,35 @@ namespace Gtk { class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr { - public: +public: 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 (); void set_width (Width); void setup_pan (); + void set_available_panners(std::map); + void set_send_drawing_mode (bool); void effective_pan_display (); void set_meter_strip_name (std::string name); - boost::shared_ptr get_controllable(); void on_size_allocate (Gtk::Allocation &); - + static void setup_slider_pix (); - private: +private: friend class MixerStrip; + friend class SendUI; + boost::shared_ptr _panshell; boost::shared_ptr _panner; PBD::ScopedConnectionList connections; PBD::ScopedConnectionList _pan_control_connections; @@ -94,35 +90,33 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr bool in_pan_update; int _current_nouts; int _current_nins; - - static const int pan_bar_height; + std::string _current_uri; + bool _send_mode; Panner2d* twod_panner; ///< 2D panner, or 0 Panner2dWindow* big_window; Gtk::VBox pan_bar_packer; Gtk::VBox pan_vbox; - Gtk::VBox poswidth_box; + Gtk::VBox poswidth_box; Width _width; - StereoPanner* _stereo_panner; - bool _ignore_width_change; - bool _ignore_position_change; - void width_adjusted (); - void show_width (); - void position_adjusted (); - void show_position (); + 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::Menu* pan_astate_menu; Gtk::Menu* pan_astyle_menu; - Gtk::Button pan_automation_style_button; Gtk::ToggleButton pan_automation_state_button; - std::vector pan_bars; - void pan_value_changed (uint32_t which); - void update_pan_state (); void build_astate_menu (); void build_astyle_menu (); @@ -141,23 +135,21 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr void build_pan_menu (); void pan_reset (); void pan_bypass_toggle (); + void pan_edit (); + void pan_set_custom_type (std::string type); void pan_automation_state_changed(); - void pan_automation_style_changed(); - gint pan_automation_style_button_event (GdkEventButton *); gint pan_automation_state_button_event (GdkEventButton *); - sigc::connection pan_watching; std::string astate_string (ARDOUR::AutoState); std::string short_astate_string (ARDOUR::AutoState); std::string _astate_string (ARDOUR::AutoState, bool); - 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); - void start_touch (boost::weak_ptr); - void stop_touch (boost::weak_ptr); + std::map _panner_list; + bool _suspend_menu_callbacks; }; #endif /* __ardour_gtk_panner_ui_h__ */