summaryrefslogtreecommitdiff
path: root/libs/ardour/chan_mapping.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/chan_mapping.cc')
-rw-r--r--libs/ardour/chan_mapping.cc20
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)
{