summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-03-23 00:01:49 +0100
committerCarl Hetherington <cth@carlh.net>2023-03-23 00:01:49 +0100
commit9cacbd6bb24d04c1b4d2b1eae313687dda4fe63b (patch)
treec6f08d599204012c13386d6f7f6e3f0e48789953
parent4063260e52dafe5a75a321ff273dba182fd2f6a9 (diff)
Cleanup: don't need to store _{input,output}_channels.
-rw-r--r--src/lib/audio_mapping.cc36
-rw-r--r--src/lib/audio_mapping.h6
2 files changed, 20 insertions, 22 deletions
diff --git a/src/lib/audio_mapping.cc b/src/lib/audio_mapping.cc
index ca2425862..74b33aa35 100644
--- a/src/lib/audio_mapping.cc
+++ b/src/lib/audio_mapping.cc
@@ -61,12 +61,9 @@ AudioMapping::AudioMapping (int input_channels, int output_channels)
void
AudioMapping::setup (int input_channels, int output_channels)
{
- _input_channels = input_channels;
- _output_channels = output_channels;
-
- _gain.resize (_input_channels);
- for (int i = 0; i < _input_channels; ++i) {
- _gain[i].resize (_output_channels);
+ _gain.resize(input_channels);
+ for (int i = 0; i < input_channels; ++i) {
+ _gain[i].resize(output_channels);
}
make_zero ();
@@ -76,9 +73,9 @@ AudioMapping::setup (int input_channels, int output_channels)
void
AudioMapping::make_zero ()
{
- for (int i = 0; i < _input_channels; ++i) {
- for (int j = 0; j < _output_channels; ++j) {
- _gain[i][j] = 0;
+ for (auto& input: _gain) {
+ for (auto& output: input) {
+ output = 0;
}
}
}
@@ -224,11 +221,14 @@ AudioMapping::get (int input_channel, int output_channel) const
void
AudioMapping::as_xml (xmlpp::Node* node) const
{
- node->add_child ("InputChannels")->add_child_text (raw_convert<string> (_input_channels));
- node->add_child ("OutputChannels")->add_child_text (raw_convert<string> (_output_channels));
+ auto const input = input_channels();
+ auto const output = output_channels();
+
+ node->add_child("InputChannels")->add_child_text(raw_convert<string>(input));
+ node->add_child("OutputChannels")->add_child_text(raw_convert<string>(output));
- for (int c = 0; c < _input_channels; ++c) {
- for (int d = 0; d < _output_channels; ++d) {
+ for (int c = 0; c < input; ++c) {
+ for (int d = 0; d < output; ++d) {
auto t = node->add_child ("Gain");
t->set_attribute ("Input", raw_convert<string> (c));
t->set_attribute ("Output", raw_convert<string> (d));
@@ -245,11 +245,11 @@ string
AudioMapping::digest () const
{
Digester digester;
- digester.add (_input_channels);
- digester.add (_output_channels);
- for (int i = 0; i < _input_channels; ++i) {
- for (int j = 0; j < _output_channels; ++j) {
- digester.add (_gain[i][j]);
+ digester.add(input_channels());
+ digester.add(output_channels());
+ for (auto const& input: _gain) {
+ for (auto output: input) {
+ digester.add(output);
}
}
diff --git a/src/lib/audio_mapping.h b/src/lib/audio_mapping.h
index 51ab0e1e5..0f59cc205 100644
--- a/src/lib/audio_mapping.h
+++ b/src/lib/audio_mapping.h
@@ -64,11 +64,11 @@ public:
float get (int input_channel, dcp::Channel output_channel) const;
int input_channels () const {
- return _input_channels;
+ return _gain.size();
}
int output_channels () const {
- return _output_channels;
+ return _gain.empty() ? 0 : _gain[0].size();
}
std::string digest () const;
@@ -79,8 +79,6 @@ public:
private:
void setup (int input_channels, int output_channels);
- int _input_channels = 0;
- int _output_channels = 0;
/** Linear gains */
std::vector<std::vector<float>> _gain;
};