summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-05-03 22:26:45 +0200
committerCarl Hetherington <cth@carlh.net>2021-05-07 09:29:59 +0200
commitb8774cafefc3d7f00636b28bc3bcebd1fe60bdb9 (patch)
treef56fd19c15fd375e1f4313e1322835e5c3bc42a9
parent2f8719d7d6331bd5bae60440451cd443367488f2 (diff)
Add AudioMapping::equals()
-rw-r--r--src/lib/audio_mapping.cc20
-rw-r--r--src/lib/audio_mapping.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/src/lib/audio_mapping.cc b/src/lib/audio_mapping.cc
index b0191f6fe..ea7e64447 100644
--- a/src/lib/audio_mapping.cc
+++ b/src/lib/audio_mapping.cc
@@ -285,3 +285,23 @@ AudioMapping::unmap_all ()
}
}
}
+
+
+bool
+AudioMapping::equals (AudioMapping const& other, float epsilon) const
+{
+ if (_input_channels != other._input_channels || _output_channels != other._output_channels) {
+ return false;
+ }
+
+ for (auto i = 0; i < _input_channels; ++i) {
+ for (auto j = 0; j < _output_channels; ++j) {
+ if (fabs(_gain[i][j] - other._gain[i][j]) > epsilon) {
+ return false;
+ }
+ }
+ }
+
+ return true;
+}
+
diff --git a/src/lib/audio_mapping.h b/src/lib/audio_mapping.h
index 4ef5aedb1..b5f1b872e 100644
--- a/src/lib/audio_mapping.h
+++ b/src/lib/audio_mapping.h
@@ -76,6 +76,8 @@ public:
std::list<int> mapped_output_channels () const;
void unmap_all ();
+ bool equals (AudioMapping const& other, float epsilon) const;
+
private:
void setup (int input_channels, int output_channels);