#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/signals.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"
void active_toggled ();
void processor_active_changed ();
- void processor_name_changed ();
+ void processor_property_changed (const PBD::PropertyChange&);
std::string name () const;
Gtk::EventBox _event_box;
Gtk::CheckButton _active;
boost::shared_ptr<ARDOUR::Processor> _processor;
Width _width;
+ PBD::ScopedConnection active_connection;
+ PBD::ScopedConnection name_connection;
};
class SendProcessorEntry : public ProcessorEntry
Gtk::Adjustment _adjustment;
Gtkmm2ext::HSliderController _fader;
bool _ignore_gain_change;
-
+ PBD::ScopedConnection send_gain_connection;
+
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 return_io_finished (IOSelector::Result, boost::weak_ptr<ARDOUR::Processor>, IOSelectorWindow*);
void choose_insert ();
void choose_plugin ();
- void use_plugins (const SelectedPlugins&);
+ bool use_plugins (const SelectedPlugins&);
bool no_processor_redisplay;
void rename_processors ();
void for_selected_processors (void (ProcessorBox::*pmf)(boost::shared_ptr<ARDOUR::Processor>));
- void get_selected_processors (ProcSelection&);
+ void get_selected_processors (ProcSelection&) const;
+
+ bool can_cut() const;
+ static Glib::RefPtr<Gtk::Action> cut_action;
static Glib::RefPtr<Gtk::Action> paste_action;
+ static Glib::RefPtr<Gtk::Action> rename_action;
void paste_processor_state (const XMLNodeList&, boost::shared_ptr<ARDOUR::Processor>);
void activate_processor (boost::shared_ptr<ARDOUR::Processor>);
static void rb_ab_plugins ();
static void rb_edit ();
- void route_name_changed ();
+ void route_property_changed (const PBD::PropertyChange&);
std::string generate_processor_title (boost::shared_ptr<ARDOUR::PluginInsert> pi);
};