#include <ardour/types.h>
#include <ardour/ardour.h>
-#include <ardour/io.h>
+#include <ardour/plugin_insert.h>
+#include <ardour/port_insert.h>
#include <ardour/processor.h>
-#include <ardour/io_processor.h>
#include <pbd/fastlog.h>
+#include "plugin_interest.h"
#include "route_ui.h"
#include "io_selector.h"
+#include "send_ui.h"
#include "enums.h"
class MotionController;
class RouteRedirectSelection;
namespace ARDOUR {
- class Bundle;
- class Processor;
+ class Connection;
+ class IO;
+ class Insert;
class Plugin;
class PluginInsert;
class PortInsert;
class Session;
}
-
-class ProcessorBox : public Gtk::HBox
+class ProcessorBox : public Gtk::HBox, public PluginInterestedObject
{
public:
- ProcessorBox (ARDOUR::Placement, ARDOUR::Session&,
- boost::shared_ptr<ARDOUR::Route>, PluginSelector &, RouteRedirectSelection &, bool owner_is_mixer = false);
+ ProcessorBox (ARDOUR::Placement, ARDOUR::Session&, PluginSelector &, RouteRedirectSelection &, bool owner_is_mixer = false);
~ProcessorBox ();
+ void set_route (boost::shared_ptr<ARDOUR::Route>);
void set_width (Width);
void update();
void select_all_processors ();
void deselect_all_processors ();
void select_all_plugins ();
+ void select_all_inserts ();
void select_all_sends ();
- sigc::signal<void,boost::shared_ptr<ARDOUR::Processor> > InsertSelected;
- sigc::signal<void,boost::shared_ptr<ARDOUR::Processor> > InsertUnselected;
+ sigc::signal<void,boost::shared_ptr<ARDOUR::Processor> > ProcessorSelected;
+ sigc::signal<void,boost::shared_ptr<ARDOUR::Processor> > ProcessorUnselected;
static void register_actions();
- protected:
- void set_stuff_from_route ();
-
private:
boost::shared_ptr<ARDOUR::Route> _route;
ARDOUR::Session & _session;
bool _owner_is_mixer;
bool ab_direction;
+ std::vector<sigc::connection> connections;
+
+ /// a send that is in the process of creation
+ boost::shared_ptr<ARDOUR::Send> _send_being_created;
ARDOUR::Placement _placement;
add (processor);
add (color);
}
- Gtk::TreeModelColumn<std::string> text;
+ Gtk::TreeModelColumn<std::string> text;
Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Processor> > processor;
- Gtk::TreeModelColumn<Gdk::Color> color;
+ Gtk::TreeModelColumn<Gdk::Color> color;
};
ModelColumns columns;
static Gdk::Color* inactive_processor_color;
Gtk::EventBox processor_eventbox;
- //Gtk::HBox processor_hpacker;
+ Gtk::HBox processor_hpacker;
Gtkmm2ext::DnDTreeView<boost::shared_ptr<ARDOUR::Processor> > processor_display;
Gtk::ScrolledWindow processor_scroller;
- void object_drop (std::string type, uint32_t cnt, const boost::shared_ptr<ARDOUR::Processor>*);
+ void object_drop (const std::list<boost::shared_ptr<ARDOUR::Processor> >&);
Width _width;
void show_processor_menu (gint arg);
void choose_send ();
- void send_io_finished (IOSelector::Result, boost::shared_ptr<ARDOUR::Send>, IOSelectorWindow*);
- void choose_processor ();
+ void send_io_finished (IOSelector::Result, boost::weak_ptr<ARDOUR::Processor>, IOSelectorWindow*);
+ void choose_insert ();
void choose_plugin ();
- void processor_plugin_chosen (boost::shared_ptr<ARDOUR::Plugin>);
+ void use_plugins (const SelectedPlugins&);
bool no_processor_redisplay;
bool ignore_delete;
bool processor_button_press_event (GdkEventButton *);
bool processor_button_release_event (GdkEventButton *);
void redisplay_processors ();
- void add_processor_to_display (boost::shared_ptr<ARDOUR::Processor>);
+ void add_processor_to_display (boost::weak_ptr<ARDOUR::Processor>);
void row_deleted (const Gtk::TreeModel::Path& path);
void show_processor_active (boost::weak_ptr<ARDOUR::Processor>);
void show_processor_name (boost::weak_ptr<ARDOUR::Processor>);
void processors_reordered (const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator&, int*);
void compute_processor_sort_keys ();
- vector<sigc::connection> processor_active_connections;
- vector<sigc::connection> processor_name_connections;
+ std::vector<sigc::connection> processor_active_connections;
+ std::vector<sigc::connection> processor_name_connections;
bool processor_drag_in_progress;
void processor_drag_begin (GdkDragContext*);
void get_selected_processors (vector<boost::shared_ptr<ARDOUR::Processor> >&);
static Glib::RefPtr<Gtk::Action> paste_action;
- void paste_processor_list (std::list<boost::shared_ptr<ARDOUR::Processor> >& processors);
+ void paste_processor_list (const std::list<boost::shared_ptr<ARDOUR::Processor> >& processors);
+ void paste_processor_state (const XMLNode&);
void activate_processor (boost::shared_ptr<ARDOUR::Processor>);
void deactivate_processor (boost::shared_ptr<ARDOUR::Processor>);
- void cut_processor (boost::shared_ptr<ARDOUR::Processor>);
- void copy_processor (boost::shared_ptr<ARDOUR::Processor>);
void edit_processor (boost::shared_ptr<ARDOUR::Processor>);
void hide_processor_editor (boost::shared_ptr<ARDOUR::Processor>);
void rename_processor (boost::shared_ptr<ARDOUR::Processor>);
static bool leave_box (GdkEventCrossing*, ProcessorBox*);
static void rb_choose_plugin ();
- static void rb_choose_processor ();
+ static void rb_choose_insert ();
static void rb_choose_send ();
static void rb_clear ();
static void rb_cut ();
static void rb_deactivate ();
static void rb_activate_all ();
static void rb_deactivate_all ();
- static void rb_edit ();
static void rb_ab_plugins ();
- static void rb_deactivate_plugins ();
+ static void rb_edit ();
void route_name_changed (PluginUIWindow* plugin_ui, boost::weak_ptr<ARDOUR::PluginInsert> pi);
std::string generate_processor_title (boost::shared_ptr<ARDOUR::PluginInsert> pi);