#include <gtkmm2ext/click_box.h>
#include <gtkmm2ext/slider_controller.h>
+#include "ardour/session_handle.h"
+
#include "enums.h"
class Panner2d;
class Panner2dWindow;
namespace ARDOUR {
- class IO;
class Session;
+ class Panner;
+ class Delivery;
+ class AutomationControl;
}
+
namespace Gtkmm2ext {
class FastMeter;
}
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_io (boost::shared_ptr<ARDOUR::IO>);
+ virtual void set_panner (boost::shared_ptr<ARDOUR::Panner>);
- void pan_changed (void *);
+ void panner_changed (void *);
void update_pan_sensitive ();
void update_gain_sensitive ();
void set_meter_strip_name (std::string name);
boost::shared_ptr<PBD::Controllable> get_controllable();
+ void set_mono (bool);
+
private:
friend class MixerStrip;
- boost::shared_ptr<ARDOUR::IO> _io;
- ARDOUR::Session& _session;
- std::vector<sigc::connection> connections;
+ boost::shared_ptr<ARDOUR::Panner> _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;
void build_astate_menu ();
void build_astyle_menu ();
- void panner_changed ();
-
void hide_pans ();
void panner_moved (int which);
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);
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<ARDOUR::AutomationControl>);
+ void stop_touch (boost::weak_ptr<ARDOUR::AutomationControl>);
};
#endif /* __ardour_gtk_panner_ui_h__ */