Add AudioMapping::take_from().
[dcpomatic.git] / src / lib / audio_mapping.cc
index 74b33aa358c5e79ae8cbfc4ebef53def0abd9ca5..b8aa6249f5faf11697331bb15ff6236a1e0b61c9 100644 (file)
@@ -288,3 +288,18 @@ AudioMapping::unmap_all ()
                }
        }
 }
+
+
+void
+AudioMapping::take_from(AudioMapping const& other)
+{
+       auto input = std::min(input_channels(), other.input_channels());
+       auto output = std::min(output_channels(), other.output_channels());
+
+       for (auto i = 0; i < input; ++i) {
+               for (auto o = 0; o < output; ++o) {
+                       set(i, o, other.get(i, o));
+               }
+       }
+}
+