+ /** remove mapping
+ * @param type data type
+ * @param from numeric source to remove from mapping
+ */
+ void unset(DataType t, uint32_t from);
+
+ /** Test mapping matrix for identity
+ * @param offset per data-type offset to take into account
+ * @returns true if the mapping is a channel identity map
+ */
+ bool is_identity (ARDOUR::ChanCount offset = ARDOUR::ChanCount()) const;
+
+ /** Test if this mapping is monotonic (useful to see if inplace processing is feasible)
+ * @returns true if the map is a strict monotonic set
+ */
+ bool is_monotonic () const;
+
+ uint32_t n_total () const;
+
+ ChanCount count () const;
+
+ XMLNode* state(const std::string& name) const;
+
+ /** Test if this mapping is a subset
+ * @param superset to test against
+ * @returns true if all mapping are also present in the superset
+ */
+ bool is_subset (const ChanMapping& superset) const;
+