X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fport_group.h;h=ebab997699d2a8b07b4bd684a2c4d70db9017175;hb=f6fdd8dcbf41f864e9f0cc32dabe81fe3533ddfe;hp=1fcceb4c192fbecc80f1aa42b544db3d18c4ce33;hpb=abd80d0f64a4b32c3a8cce01c9aa1d6bc7ee64bb;p=ardour.git diff --git a/gtk2_ardour/port_group.h b/gtk2_ardour/port_group.h index 1fcceb4c19..ebab997699 100644 --- a/gtk2_ardour/port_group.h +++ b/gtk2_ardour/port_group.h @@ -23,9 +23,12 @@ #include #include #include +#include +#include + #include #include -#include + #include "ardour/data_type.h" #include "ardour/types.h" @@ -47,6 +50,7 @@ class PortGroup : public sigc::trackable { public: PortGroup (std::string const & n); + ~PortGroup (); void add_bundle (boost::shared_ptr, bool allow_dups = false); void add_bundle (boost::shared_ptr, boost::shared_ptr io); @@ -65,19 +69,21 @@ public: sigc::signal Changed; /** An individual bundle on our list has changed in some way */ - sigc::signal BundleChanged; + boost::signals2::signal BundleChanged; struct BundleRecord { - boost::shared_ptr bundle; - /** IO whose ports are in the bundle, or 0. This is so that we can do things like adding - ports to the IO from matrix editor menus. */ - boost::shared_ptr io; - Gdk::Color colour; - bool has_colour; - sigc::connection changed_connection; + boost::shared_ptr bundle; + /** IO whose ports are in the bundle, or 0. This is so that we can do things like adding + ports to the IO from matrix editor menus. */ + boost::shared_ptr io; + Gdk::Color colour; + bool has_colour; + boost::signals2::scoped_connection changed_connection; + + BundleRecord (boost::shared_ptr, boost::shared_ptr, Gdk::Color, bool has_colour); }; - typedef std::list BundleList; + typedef std::list BundleList; BundleList const & bundles () const { return _bundles; @@ -95,6 +101,7 @@ class PortGroupList : public sigc::trackable { public: PortGroupList (); + ~PortGroupList(); typedef std::vector > List; @@ -125,10 +132,10 @@ class PortGroupList : public sigc::trackable bool empty () const; /** The group list has changed in some way; a group has been added or removed, or the list cleared etc. */ - sigc::signal Changed; + boost::signals2::signal Changed; /** A bundle in one of our groups has changed */ - sigc::signal BundleChanged; + boost::signals2::signal BundleChanged; private: bool port_has_prefix (std::string const &, std::string const &) const; @@ -144,7 +151,7 @@ class PortGroupList : public sigc::trackable ARDOUR::DataType _type; mutable PortGroup::BundleList _bundles; List _groups; - std::vector _bundle_changed_connections; + PBD::ScopedConnectionList _bundle_changed_connections; bool _signals_suspended; bool _pending_change; ARDOUR::Bundle::Change _pending_bundle_change;