Cleanup: don't need to store _{input,output}_channels.
authorCarl Hetherington <cth@carlh.net>
Wed, 22 Mar 2023 23:01:49 +0000 (00:01 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 22 Mar 2023 23:01:49 +0000 (00:01 +0100)
src/lib/audio_mapping.cc
src/lib/audio_mapping.h

index ca2425862e733dc68acc9a08312f904580d78b99..74b33aa358c5e79ae8cbfc4ebef53def0abd9ca5 100644 (file)
@@ -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);
                }
        }
 
index 51ab0e1e52e560723d706a62357a08f83d840db1..0f59cc205ee35937f6ed9727aab40aef4c9d4dcd 100644 (file)
@@ -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;
 };