diff options
Diffstat (limited to 'libs/ardour/chan_mapping.cc')
-rw-r--r-- | libs/ardour/chan_mapping.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libs/ardour/chan_mapping.cc b/libs/ardour/chan_mapping.cc index 0ca79af505..6386c2863b 100644 --- a/libs/ardour/chan_mapping.cc +++ b/libs/ardour/chan_mapping.cc @@ -67,6 +67,26 @@ ChanMapping::get(DataType t, uint32_t from, bool* valid) const return m->second; } +uint32_t +ChanMapping::get_src(DataType t, uint32_t to, bool* valid) const +{ + Mappings::const_iterator tm = _mappings.find(t); + if (tm == _mappings.end()) { + if (valid) { *valid = false; } + return -1; + } + for (TypeMapping::const_iterator i = tm->second.begin(); i != tm->second.end(); ++i) { + if (i->second == to) { + if (valid) { *valid = true; } + return i->first; + } + } + if (valid) { *valid = false; } + return -1; +} + + + void ChanMapping::set(DataType t, uint32_t from, uint32_t to) { |