diff options
-rw-r--r-- | libs/ardour/ardour/chan_mapping.h | 2 | ||||
-rw-r--r-- | libs/ardour/chan_mapping.cc | 11 |
2 files changed, 13 insertions, 0 deletions
diff --git a/libs/ardour/ardour/chan_mapping.h b/libs/ardour/ardour/chan_mapping.h index f73408baec..88cdf44408 100644 --- a/libs/ardour/ardour/chan_mapping.h +++ b/libs/ardour/ardour/chan_mapping.h @@ -86,6 +86,8 @@ public: */ bool is_monotonic () const; + uint32_t count () const; + /** Test if this mapping is a subset * @param superset to test against * @returns true if all mapping are also present in the superset diff --git a/libs/ardour/chan_mapping.cc b/libs/ardour/chan_mapping.cc index 6386c2863b..9e69294fdb 100644 --- a/libs/ardour/chan_mapping.cc +++ b/libs/ardour/chan_mapping.cc @@ -184,6 +184,17 @@ ChanMapping::is_identity (ChanCount offset) const return true; } +uint32_t +ChanMapping::count () const +{ + uint32_t rv = 0; + const Mappings& mp (mappings()); + for (Mappings::const_iterator tm = mp.begin(); tm != mp.end(); ++tm) { + rv += tm->second.size (); + } + return rv; +} + } // namespace ARDOUR std::ostream& operator<<(std::ostream& o, const ARDOUR::ChanMapping& cm) |