- private:
- boost::shared_ptr<ARDOUR::IO> io;
- bool for_input;
- ARDOUR::Port *selected_port;
- sigc::connection page_selection_connection;
-
- Gtk::VBox main_box;
- Gtk::HBox port_and_selector_box;
-
- /* column model */
-
- struct PortDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
-
- PortDisplayModelColumns() {
- add (displayed_name);
- add (full_name);
- }
-
- Gtk::TreeModelColumn<Glib::ustring> displayed_name;
- Gtk::TreeModelColumn<Glib::ustring> full_name;
- };
-
- PortDisplayModelColumns port_display_columns;
-
- /* client/port selection */
-
- Gtk::Notebook notebook;
- Gtk::Frame selector_frame;
- Gtk::VBox selector_box;
- Gtk::HBox selector_button_box;
-
- /* ports */
-
- Gtk::VBox port_box;
- Gtk::HBox port_button_box;
- Gtk::VBox port_and_button_box;
- Gtk::Frame port_frame;
- Gtk::Button add_port_button;
- Gtk::Button remove_port_button;
- Gtk::Button clear_connections_button;
- Gtk::ScrolledWindow port_display_scroller;
-
- Glib::Mutex port_display_lock;
- slist<Gtk::TreeView *> port_displays;
- void display_ports ();
-
- void rescan ();
- void clear_connections ();
-
- bool port_selection_changed(GdkEventButton *, Gtk::TreeView*);
-
- void ports_changed (ARDOUR::IOChange, void *);
- void name_changed (void*);
-
- void add_port ();
- void remove_port ();
- void set_button_sensitivity ();
+ State get_state (
+ boost::shared_ptr<ARDOUR::Bundle>,
+ uint32_t,
+ boost::shared_ptr<ARDOUR::Bundle>,
+ uint32_t
+ ) const;
+
+ void add_channel (boost::shared_ptr<ARDOUR::Bundle>);
+ void remove_channel (boost::shared_ptr<ARDOUR::Bundle>, uint32_t);
+ bool can_rename_channels () const {
+ return false;
+ }
+
+ uint32_t n_rows () const;
+ uint32_t maximum_rows () const;
+ uint32_t minimum_rows () const;
+ boost::shared_ptr<ARDOUR::IO> const io () { return _io; }
+ void setup ();