#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;
}
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 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_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);