class MotionController;
class PluginSelector;
+class PluginUIWindow;
class RouteRedirectSelection;
namespace ARDOUR {
+ class Connection;
+ class Insert;
+ class Plugin;
+ class PluginInsert;
+ class PortInsert;
class Route;
class Send;
- class Insert;
class Session;
- class PortInsert;
- class Connection;
- class Plugin;
}
-
class RedirectBox : public Gtk::HBox
{
public:
PluginSelector & _plugin_selector;
RouteRedirectSelection & _rr_selection;
-
+
+ void route_going_away ();
+
struct ModelColumns : public Gtk::TreeModel::ColumnRecord {
ModelColumns () {
add (text);
Gtk::EventBox redirect_eventbox;
Gtk::HBox redirect_hpacker;
- Gtkmm2ext::DnDTreeView redirect_display;
+ Gtkmm2ext::DnDTreeView<boost::shared_ptr<ARDOUR::Redirect> > redirect_display;
Gtk::ScrolledWindow redirect_scroller;
- void object_drop (std::string type, uint32_t cnt, void**);
+ void object_drop (std::string type, uint32_t cnt, const boost::shared_ptr<ARDOUR::Redirect>*);
Width _width;
void show_redirect_menu (gint arg);
void choose_send ();
- void send_io_finished (IOSelector::Result, boost::shared_ptr<ARDOUR::Redirect>, IOSelectorWindow*);
+ void send_io_finished (IOSelector::Result, boost::weak_ptr<ARDOUR::Redirect>, IOSelectorWindow*);
void choose_insert ();
void choose_plugin ();
void insert_plugin_chosen (boost::shared_ptr<ARDOUR::Plugin>);
bool ignore_delete;
bool redirect_button_press_event (GdkEventButton *);
+ bool redirect_button_release_event (GdkEventButton *);
void redisplay_redirects (void* src);
void add_redirect_to_display (boost::shared_ptr<ARDOUR::Redirect>);
void row_deleted (const Gtk::TreeModel::Path& path);
- void show_redirect_name (void*, boost::shared_ptr<ARDOUR::Redirect>);
-
- /* these are handlers for Redirect signals, so they take Redirect*
- directly, rather than shared_ptr<Redirect>
- */
-
- void show_redirect_active (ARDOUR::Redirect*, void *);
-
- string redirect_name (boost::shared_ptr<ARDOUR::Redirect>);
+ void show_redirect_active_r (ARDOUR::Redirect*, void *, boost::weak_ptr<ARDOUR::Redirect>);
+ void show_redirect_active (boost::weak_ptr<ARDOUR::Redirect>);
+ void show_redirect_name (void* src, boost::weak_ptr<ARDOUR::Redirect>);
+ string redirect_name (boost::weak_ptr<ARDOUR::Redirect>);
void remove_redirect_gui (boost::shared_ptr<ARDOUR::Redirect>);
void hide_redirect_editor (boost::shared_ptr<ARDOUR::Redirect>);
void rename_redirect (boost::shared_ptr<ARDOUR::Redirect>);
- gint idle_delete_redirect (boost::shared_ptr<ARDOUR::Redirect>);
+ gint idle_delete_redirect (boost::weak_ptr<ARDOUR::Redirect>);
void wierd_plugin_dialog (ARDOUR::Plugin& p, uint32_t streams, boost::shared_ptr<ARDOUR::IO> io);
static void rb_activate_all ();
static void rb_deactivate_all ();
static void rb_edit ();
+
+ void route_name_changed (void* src, PluginUIWindow* plugin_ui, boost::weak_ptr<ARDOUR::PluginInsert> pi);
+ std::string generate_redirect_title (boost::shared_ptr<ARDOUR::PluginInsert> pi);
};
#endif /* __ardour_gtk_redirect_box__ */