Move raw_convert into libdcp.
[dcpomatic.git] / src / lib / audio_mapping.cc
index ca175912b31c0b7969933622d2b49751b0b2bece..bf454b5e5e43cddbdfa48695e5e9fc01eacc863d 100644 (file)
@@ -1,28 +1,30 @@
 /*
     Copyright (C) 2013-2015 Carl Hetherington <cth@carlh.net>
 
-    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 <http://www.gnu.org/licenses/>.
 
 */
 
 #include "audio_mapping.h"
 #include "util.h"
-#include "md5_digester.h"
-#include "raw_convert.h"
+#include "digester.h"
+#include <dcp/raw_convert.h>
 #include <libcxml/cxml.h>
 #include <libxml++/libxml++.h>
+#include <iostream>
 
 using std::list;
 using std::cout;
@@ -34,6 +36,7 @@ using std::vector;
 using std::abs;
 using boost::shared_ptr;
 using boost::dynamic_pointer_cast;
+using dcp::raw_convert;
 
 AudioMapping::AudioMapping ()
        : _input_channels (0)
@@ -56,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);
@@ -118,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];
 }
 
@@ -143,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) {
@@ -161,7 +166,7 @@ AudioMapping::mapped_output_channels () const
        static float const minus_96_db = 0.000015849;
 
        list<int> mapped;
-       
+
        for (vector<vector<float> >::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) {
@@ -172,7 +177,7 @@ AudioMapping::mapped_output_channels () const
 
        mapped.sort ();
        mapped.unique ();
-       
+
        return mapped;
 }