#ifndef __ardour_gtk_processor_box__
#define __ardour_gtk_processor_box__
+#include <cmath>
#include <vector>
-#include <cmath>
+#include <boost/function.hpp>
+
#include <gtkmm/box.h>
#include <gtkmm/eventbox.h>
#include <gtkmm/menu.h>
#include <gtkmm2ext/pixfader.h>
#include "pbd/stateful.h"
+#include "pbd/scoped_connections.h"
#include "ardour/types.h"
#include "ardour/ardour.h"
#include "ardour/port_insert.h"
#include "ardour/processor.h"
#include "ardour/route.h"
+#include "ardour/session_handle.h"
#include "pbd/fastlog.h"
Gtk::Widget& widget ();
std::string drag_text () const;
boost::shared_ptr<ARDOUR::Processor> processor () const;
- void set_width (Width);
+ void set_enum_width (Width);
+ virtual void set_pixel_width (int) {}
protected:
static void setup_slider_pix ();
+ void set_enum_width (Width, int);
+ void set_pixel_width (int);
+
private:
void show_gain ();
void gain_adjusted ();
static Glib::RefPtr<Gdk::Pixbuf> _slider;
};
-class ProcessorBox : public Gtk::HBox, public PluginInterestedObject
+class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARDOUR::SessionHandlePtr
{
public:
- ProcessorBox (ARDOUR::Session&, sigc::slot<PluginSelector*> get_plugin_selector,
- RouteRedirectSelection&, MixerStrip* parent, bool owner_is_mixer = false);
+ ProcessorBox (ARDOUR::Session*, boost::function<PluginSelector*()> get_plugin_selector,
+ RouteRedirectSelection&, MixerStrip* parent, bool owner_is_mixer = false);
~ProcessorBox ();
void set_route (boost::shared_ptr<ARDOUR::Route>);
private:
boost::shared_ptr<ARDOUR::Route> _route;
- ARDOUR::Session & _session;
MixerStrip* _parent_strip; // null if in RouteParamsUI
bool _owner_is_mixer;
bool ab_direction;
- std::vector<sigc::connection> connections;
+ PBD::ScopedConnectionList connections;
- sigc::slot<PluginSelector*> _get_plugin_selector;
+ boost::function<PluginSelector*()> _get_plugin_selector;
boost::shared_ptr<ARDOUR::Processor> _processor_being_created;
void choose_aux (boost::weak_ptr<ARDOUR::Route>);
void choose_send ();
void send_io_finished (IOSelector::Result, boost::weak_ptr<ARDOUR::Processor>, IOSelectorWindow*);
- void choose_return ();
void return_io_finished (IOSelector::Result, boost::weak_ptr<ARDOUR::Processor>, IOSelectorWindow*);
void choose_insert ();
void choose_plugin ();
void redisplay_processors ();
void add_processor_to_display (boost::weak_ptr<ARDOUR::Processor>);
void reordered ();
+ void route_processors_changed (ARDOUR::RouteProcessorChange);
void remove_processor_gui (boost::shared_ptr<ARDOUR::Processor>);
gint idle_delete_processor (boost::weak_ptr<ARDOUR::Processor>);
void weird_plugin_dialog (ARDOUR::Plugin& p, ARDOUR::Route::ProcessorStreams streams);
+ void on_size_allocate (Gtk::Allocation &);
static ProcessorBox* _current_processor_box;
static void rb_choose_plugin ();
static void rb_choose_insert ();
static void rb_choose_send ();
- static void rb_choose_return ();
static void rb_clear ();
static void rb_clear_pre ();
static void rb_clear_post ();