X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Faudio_mapping.cc;h=bf454b5e5e43cddbdfa48695e5e9fc01eacc863d;hb=61a3f348c433ca4f8d2e7bb9758ad5d61bd35407;hp=fc3909a8aa0ab5240dd7d17b968bf102e2783d70;hpb=fa61fc99549264810e17fcd35abffe9e8ddab5b2;p=dcpomatic.git diff --git a/src/lib/audio_mapping.cc b/src/lib/audio_mapping.cc index fc3909a8a..bf454b5e5 100644 --- a/src/lib/audio_mapping.cc +++ b/src/lib/audio_mapping.cc @@ -1,28 +1,30 @@ /* Copyright (C) 2013-2015 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ #include "audio_mapping.h" #include "util.h" -#include "md5_digester.h" -#include "raw_convert.h" +#include "digester.h" +#include #include #include +#include using std::list; using std::cout; @@ -31,8 +33,10 @@ using std::pair; using std::string; using std::min; using std::vector; +using std::abs; using boost::shared_ptr; using boost::dynamic_pointer_cast; +using dcp::raw_convert; AudioMapping::AudioMapping () : _input_channels (0) @@ -55,7 +59,7 @@ 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); @@ -117,6 +121,8 @@ AudioMapping::set (int input_channel, int output_channel, float g) float AudioMapping::get (int input_channel, int output_channel) const { + DCPOMATIC_ASSERT (input_channel < int (_gain.size())); + DCPOMATIC_ASSERT (output_channel < int (_gain[0].size())); return _gain[input_channel][output_channel]; } @@ -142,7 +148,7 @@ AudioMapping::as_xml (xmlpp::Node* node) const string AudioMapping::digest () const { - MD5Digester digester; + Digester digester; digester.add (_input_channels); digester.add (_output_channels); for (int i = 0; i < _input_channels; ++i) { @@ -160,7 +166,7 @@ AudioMapping::mapped_output_channels () const static float const minus_96_db = 0.000015849; list mapped; - + for (vector >::const_iterator i = _gain.begin(); i != _gain.end(); ++i) { for (size_t j = 0; j < i->size(); ++j) { if (abs ((*i)[j]) > minus_96_db) { @@ -171,7 +177,7 @@ AudioMapping::mapped_output_channels () const mapped.sort (); mapped.unique (); - + return mapped; }