diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-05-03 22:26:45 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-05-07 09:29:59 +0200 |
| commit | b8774cafefc3d7f00636b28bc3bcebd1fe60bdb9 (patch) | |
| tree | f56fd19c15fd375e1f4313e1322835e5c3bc42a9 | |
| parent | 2f8719d7d6331bd5bae60440451cd443367488f2 (diff) | |
Add AudioMapping::equals()
| -rw-r--r-- | src/lib/audio_mapping.cc | 20 | ||||
| -rw-r--r-- | src/lib/audio_mapping.h | 2 |
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); |
