X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fio_selector.h;h=430926f76110583c6b50d645ef316dc46b3bc84b;hb=8d1775b4582a4fe96b254dd3877377406ee51642;hp=b3e386127987c757d2f3804bf2a94fa06cdbed6f;hpb=d7cd04b719f0e2d8e13efc2ea94e938acda3533b;p=ardour.git diff --git a/gtk2_ardour/io_selector.h b/gtk2_ardour/io_selector.h index b3e3861279..430926f761 100644 --- a/gtk2_ardour/io_selector.h +++ b/gtk2_ardour/io_selector.h @@ -15,7 +15,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ #ifndef __ardour_ui_io_selector_h__ @@ -29,6 +28,9 @@ using __gnu_cxx::slist; #endif #include + +#include + #include #include #include @@ -39,6 +41,7 @@ using __gnu_cxx::slist; #include + namespace ARDOUR { class IO; class Session; @@ -49,7 +52,7 @@ namespace ARDOUR { class IOSelector : public Gtk::VBox { public: - IOSelector (ARDOUR::Session&, ARDOUR::IO&, bool for_input); + IOSelector (ARDOUR::Session&, boost::shared_ptr, bool for_input); ~IOSelector (); void redisplay (); @@ -63,11 +66,12 @@ class IOSelector : public Gtk::VBox { protected: ARDOUR::Session& session; - + private: - ARDOUR::IO& io; + boost::shared_ptr io; bool for_input; ARDOUR::Port *selected_port; + sigc::connection page_selection_connection; Gtk::VBox main_box; Gtk::HBox port_and_selector_box; @@ -105,23 +109,22 @@ class IOSelector : public Gtk::VBox { Gtk::Button clear_connections_button; Gtk::ScrolledWindow port_display_scroller; - PBD::Lock port_display_lock; + Glib::Mutex port_display_lock; slist port_displays; void display_ports (); void rescan (); void clear_connections (); - void port_selection_changed(Gtk::TreeView*); + bool port_selection_changed(GdkEventButton *, Gtk::TreeView*); void ports_changed (ARDOUR::IOChange, void *); void name_changed (void*); void add_port (); void remove_port (); - gint remove_port_when_idle (ARDOUR::Port *); + void set_button_sensitivity (); - gint port_column_button_release (GdkEventButton *, Gtk::TreeView*); gint connection_button_release (GdkEventButton *, Gtk::TreeView*); void select_treeview(Gtk::TreeView*); @@ -131,7 +134,7 @@ class IOSelector : public Gtk::VBox { class IOSelectorWindow : public ArdourDialog { public: - IOSelectorWindow (ARDOUR::Session&, ARDOUR::IO&, bool for_input, bool can_cancel=false); + IOSelectorWindow (ARDOUR::Session&, boost::shared_ptr, bool for_input, bool can_cancel=false); ~IOSelectorWindow (); IOSelector& selector() { return _selector; } @@ -158,7 +161,7 @@ class IOSelectorWindow : public ArdourDialog class PortInsertUI : public Gtk::VBox { public: - PortInsertUI (ARDOUR::Session&, ARDOUR::PortInsert&); + PortInsertUI (ARDOUR::Session&, boost::shared_ptr); void redisplay (); void finished (IOSelector::Result); @@ -174,7 +177,7 @@ class PortInsertUI : public Gtk::VBox class PortInsertWindow : public ArdourDialog { public: - PortInsertWindow (ARDOUR::Session&, ARDOUR::PortInsert&, bool can_cancel=false); + PortInsertWindow (ARDOUR::Session&, boost::shared_ptr, bool can_cancel=false); protected: void on_map (); @@ -194,7 +197,7 @@ class PortInsertWindow : public ArdourDialog void cancel (); void accept (); - void plugin_going_away (ARDOUR::Redirect*); + void plugin_going_away (); };