X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fport_matrix.h;h=09c334b5efe7222f3e5bb570f08e0e6e26e0b378;hb=c912bd61ae49cc79158f3322439c29b27ef51de8;hp=a67292829be19e0852b498a1e33788fd10b15998;hpb=92e412661772e6b9c83109b7ee4996f4c040d3f4;p=ardour.git diff --git a/gtk2_ardour/port_matrix.h b/gtk2_ardour/port_matrix.h index a67292829b..09c334b5ef 100644 --- a/gtk2_ardour/port_matrix.h +++ b/gtk2_ardour/port_matrix.h @@ -85,7 +85,7 @@ public: LEFT_TO_BOTTOM ///< row labels to the left, column labels on the bottom }; - + /** @return Arrangement in use */ Arrangement arrangement () const { return _arrangement; @@ -116,7 +116,7 @@ public: } boost::shared_ptr visible_ports (int d) const; - + void init (); void setup (); virtual void setup_ports (int) = 0; @@ -126,6 +126,12 @@ public: bool should_show (ARDOUR::DataType) const; uint32_t count_of_our_type (ARDOUR::ChanCount) const; + uint32_t count_of_our_type_min_1 (ARDOUR::ChanCount) const; + + PortMatrixNode::State get_association (PortMatrixNode) const; + + void flip (); + bool key_press (GdkEventKey *); /** @param c Channels; where c[0] is from _ports[0] and c[1] is from _ports[1]. * @param s New state. @@ -138,7 +144,7 @@ public: virtual PortMatrixNode::State get_state (ARDOUR::BundleChannel c[2]) const = 0; virtual bool list_is_global (int) const = 0; - virtual bool can_add_channel (boost::shared_ptr) const; + virtual bool can_add_channels (boost::shared_ptr) const; virtual void add_channel (boost::shared_ptr, ARDOUR::DataType); virtual bool can_remove_channels (boost::shared_ptr) const; virtual void remove_channel (ARDOUR::BundleChannel); @@ -157,6 +163,8 @@ public: sigc::signal Finished; + static bool bundle_with_channels (boost::shared_ptr); + protected: /** We have two port group lists. One will be presented on the rows of the matrix, @@ -180,6 +188,7 @@ private: void disassociate_all_on_channel (boost::weak_ptr, uint32_t, int); void disassociate_all_on_bundle (boost::weak_ptr, int); void setup_global_ports (); + void setup_global_ports_proxy (); void toggle_show_only_bundles (); bool on_scroll_event (GdkEventScroll *); boost::shared_ptr io_from_bundle (boost::shared_ptr) const; @@ -192,10 +201,13 @@ private: void add_remove_option (Gtk::Menu_Helpers::MenuList &, boost::weak_ptr, int); void add_disassociate_option (Gtk::Menu_Helpers::MenuList &, boost::weak_ptr, int, int); void port_connected_or_disconnected (); + void update_tab_highlighting (); + std::pair check_flip () const; + bool can_flip () const; Gtk::Window* _parent; - /// port type that we are working with, or NIL if we are working with all of them + /** port type that we are working with, or NIL if we are working with all of them */ ARDOUR::DataType _type; PBD::ScopedConnectionList _route_connections; PBD::ScopedConnectionList _changed_connections;