class PluginDisplay : public Gtk::DrawingArea {
public:
- PluginDisplay(boost::shared_ptr<ARDOUR::Plugin>, uint32_t max_height = 80);
- ~PluginDisplay();
+ PluginDisplay(ProcessorEntry&, boost::shared_ptr<ARDOUR::Plugin>, uint32_t max_height = 80);
+ virtual ~PluginDisplay();
protected:
bool on_expose_event (GdkEventExpose *);
void on_size_request (Gtk::Requisition* req);
+ bool on_button_press_event (GdkEventButton *ev);
+ bool on_button_release_event (GdkEventButton *ev);
+
+ void plugin_going_away () {
+ _qdraw_connection.disconnect ();
+ }
void update_height_alloc (uint32_t inline_height);
virtual uint32_t render_inline (cairo_t *, uint32_t width);
+ ProcessorEntry& _entry;
boost::shared_ptr<ARDOUR::Plugin> _plug;
PBD::ScopedConnection _qdraw_connection;
+ PBD::ScopedConnection _death_connection;
cairo_surface_t* _surf;
uint32_t _max_height;
uint32_t _cur_height;
class LuaPluginDisplay : public PluginDisplay {
public:
- LuaPluginDisplay(boost::shared_ptr<ARDOUR::LuaProc>, uint32_t max_height = 80);
+ LuaPluginDisplay(ProcessorEntry&, boost::shared_ptr<ARDOUR::LuaProc>, uint32_t max_height = 80);
~LuaPluginDisplay();
protected:
virtual uint32_t render_inline (cairo_t *, uint32_t width);
const ARDOUR::ChanMapping&,
const ARDOUR::ChanMapping&,
const ARDOUR::ChanMapping&);
- void set_feed (
+ void set_fed_by (
+ const ARDOUR::ChanCount&,
+ const ARDOUR::ChanCount&,
+ const ARDOUR::ChanMapping&,
+ const ARDOUR::ChanMapping&);
+
+ void set_feeding (
const ARDOUR::ChanCount&,
const ARDOUR::ChanCount&,
const ARDOUR::ChanMapping&,
const ARDOUR::ChanMapping&);
+ void set_terminal (bool b);
+
void copy_state (const RoutingIcon& other) {
_in = other._in;
_out = other._out;
_f_out_map = other._f_out_map;
_f_thru_map = other._f_thru_map;
_f_sources = other._f_sources;
- _feed = other._feed;
+ _i_in = other._i_in;
+ _i_in_map = other._i_in_map;
+ _i_thru_map = other._i_thru_map;
+ _i_sinks = other._i_sinks;
+ _fed_by = other._fed_by;
+ _feeding = other._feeding;
}
- void unset_feed () { _feed = false ; }
- bool identity () const;
+ void unset_fed_by () { _fed_by = false ; }
+ void unset_feeding () { _feeding = false ; }
+ bool in_identity () const;
bool out_identity () const;
+ bool can_coalesce () const;
static double pin_x_pos (uint32_t, double, uint32_t, uint32_t, bool);
static void draw_connection (cairo_t*, double, double, double, double, bool, bool dashed = false);
- static void draw_gnd (cairo_t*, double, double, bool);
- static void draw_X (cairo_t*, double, double, bool);
- static void draw_sidechain (cairo_t*, double, double, bool);
- static void draw_thru (cairo_t*, double, double, bool);
+ static void draw_gnd (cairo_t*, double, double, double, bool);
+ static void draw_sidechain (cairo_t*, double, double, double, bool);
+ static void draw_thru_src (cairo_t*, double, double, double, bool);
+ static void draw_thru_sink (cairo_t*, double, double, double, bool);
private:
bool on_expose_event (GdkEventExpose *);
void expose_input_map (cairo_t*, const double, const double);
+ void expose_coalesced_input_map (cairo_t*, const double, const double);
void expose_output_map (cairo_t*, const double, const double);
ARDOUR::ChanCount _in;
ARDOUR::ChanMapping _f_out_map;
ARDOUR::ChanMapping _f_thru_map;
ARDOUR::ChanCount _f_sources;
- bool _feed;
+ ARDOUR::ChanCount _i_in;
+ ARDOUR::ChanMapping _i_in_map;
+ ARDOUR::ChanMapping _i_thru_map;
+ ARDOUR::ChanCount _i_sinks;
+ bool _fed_by;
+ bool _feeding;
bool _input;
+ bool _terminal;
};
public:
void return_io_finished (IOSelector::Result, boost::weak_ptr<ARDOUR::Processor>, IOSelectorWindow*);
void choose_insert ();
void choose_plugin ();
- bool choose_lua ();
bool use_plugins (const SelectedPlugins&);
bool no_processor_redisplay;
static Glib::RefPtr<Gtk::Action> paste_action;
static Glib::RefPtr<Gtk::Action> rename_action;
static Glib::RefPtr<Gtk::Action> delete_action;
+ static Glib::RefPtr<Gtk::Action> backspace_action;
static Glib::RefPtr<Gtk::Action> manage_pins_action;
static Glib::RefPtr<Gtk::Action> edit_action;
static Glib::RefPtr<Gtk::Action> edit_generic_action;
static void rb_choose_aux (boost::weak_ptr<ARDOUR::Route>);
static void rb_choose_plugin ();
static void rb_choose_insert ();
- static void rb_choose_lua ();
static void rb_choose_send ();
static void rb_clear ();
static void rb_clear_pre ();