X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpanner_ui.h;h=4ed8767fb1258f30e7ba964b059a9461eb8d1c62;hb=fddb3778120e25b3b8e8134084e260dac07c1365;hp=79a8085488da10231c0a0322073588ca4e3da1fa;hpb=532f6aad4ac79ca15d69deccd18fca90e444c437;p=ardour.git diff --git a/gtk2_ardour/panner_ui.h b/gtk2_ardour/panner_ui.h index 79a8085488..4ed8767fb1 100644 --- a/gtk2_ardour/panner_ui.h +++ b/gtk2_ardour/panner_ui.h @@ -15,7 +15,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ #ifndef __ardour_gtk_panner_ui_h__ @@ -34,14 +33,18 @@ #include #include +#include "ardour/session_handle.h" + #include "enums.h" class Panner2d; class PannerBar; +class Panner2dWindow; namespace ARDOUR { - class IO; class Session; + class Panner; + class Delivery; } namespace Gtkmm2ext { class FastMeter; @@ -52,12 +55,14 @@ namespace Gtk { class Menuitem; } -class PannerUI : public Gtk::HBox +class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr { public: - PannerUI (boost::shared_ptr, ARDOUR::Session&); + PannerUI (ARDOUR::Session*); ~PannerUI (); + virtual void set_panner (boost::shared_ptr); + void pan_changed (void *); void update_pan_sensitive (); @@ -68,19 +73,27 @@ class PannerUI : public Gtk::HBox void effective_pan_display (); - void set_meter_strip_name (string name); + void set_meter_strip_name (std::string name); + boost::shared_ptr get_controllable(); + + void set_mono (bool); private: friend class MixerStrip; - boost::shared_ptr _io; - ARDOUR::Session& _session; + + boost::shared_ptr _panner; + 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; Gtk::Adjustment hAdjustment; @@ -100,26 +113,27 @@ class PannerUI : public Gtk::HBox bool panning_link_button_press (GdkEventButton*); bool panning_link_button_release (GdkEventButton*); - Gtk::Menu pan_astate_menu; - Gtk::Menu pan_astyle_menu; + Gtk::Menu* pan_astate_menu; + Gtk::Menu* pan_astyle_menu; Gtk::Button pan_automation_style_button; Gtk::ToggleButton pan_automation_state_button; void panning_link_direction_clicked (); - vector pan_adjustments; - vector pan_bars; + std::vector pan_adjustments; + std::vector pan_bars; void pan_adjustment_changed (uint32_t which); void pan_value_changed (uint32_t which); - void pan_printer (char* buf, uint32_t, Gtk::Adjustment*); void update_pan_bars (bool only_if_aplay); void update_pan_linkage (); void update_pan_state (); + void build_astate_menu (); + void build_astyle_menu (); void panner_changed (); - + void hide_pans (); void panner_moved (int which); @@ -130,11 +144,14 @@ 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); void pan_mute (uint32_t which); - void pan_reset (); + void pan_reset (uint32_t); + void pan_reset_all (); void pan_bypass_toggle (); void pan_automation_state_changed();