+ static void prepare_for_reset (XMLNode&, const std::string&);
+
+ class BoolCombiner {
+ public:
+
+ typedef bool result_type;
+
+ template <typename Iter>
+ result_type operator() (Iter first, Iter last) const {
+ bool r = false;
+ while (first != last) {
+ if (*first) {
+ r = true;
+ }
+ ++first;
+ }
+
+ return r;
+ }
+ };
+
+ /** Emitted when the port count is about to change. Objects
+ * can attach to this, and return `true' if they want to prevent
+ * the change from happening.
+ */
+ PBD::Signal1<bool, ChanCount, BoolCombiner> PortCountChanging;