Separate AudioPoint.
authorCarl Hetherington <cth@carlh.net>
Wed, 26 Aug 2015 21:36:25 +0000 (22:36 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 26 Aug 2015 21:36:25 +0000 (22:36 +0100)
src/lib/audio_analysis.cc
src/lib/audio_analysis.h
src/lib/audio_point.cc [new file with mode: 0644]
src/lib/audio_point.h [new file with mode: 0644]
src/lib/wscript

index 127def8074625742ecc54bd3535ecb40a0b36075..6fcd97c94e654fecdb2c75e9d78e196f1c4dd7c9 100644 (file)
@@ -39,47 +39,6 @@ using std::max;
 using std::list;
 using boost::shared_ptr;
 
-AudioPoint::AudioPoint ()
-{
-       for (int i = 0; i < COUNT; ++i) {
-               _data[i] = 0;
-       }
-}
-
-AudioPoint::AudioPoint (cxml::ConstNodePtr node)
-{
-       _data[PEAK] = node->number_child<float> ("Peak");
-       _data[RMS] = node->number_child<float> ("RMS");
-}
-
-AudioPoint::AudioPoint (AudioPoint const & other)
-{
-       for (int i = 0; i < COUNT; ++i) {
-               _data[i] = other._data[i];
-       }
-}
-
-AudioPoint &
-AudioPoint::operator= (AudioPoint const & other)
-{
-       if (this == &other) {
-               return *this;
-       }
-
-       for (int i = 0; i < COUNT; ++i) {
-               _data[i] = other._data[i];
-       }
-
-       return *this;
-}
-
-void
-AudioPoint::as_xml (xmlpp::Element* parent) const
-{
-       parent->add_child ("Peak")->add_child_text (raw_convert<string> (_data[PEAK]));
-       parent->add_child ("RMS")->add_child_text (raw_convert<string> (_data[RMS]));
-}
-
 AudioAnalysis::AudioAnalysis (int channels)
 {
        _data.resize (channels);
index 6c0be69873f2b2b1bcd7d81bca83498e4a54d424..5e71705bf3b2dbb25e1ce2ce038e41a4401b28a5 100644 (file)
@@ -21,6 +21,7 @@
 #define DCPOMATIC_AUDIO_ANALYSIS_H
 
 #include "dcpomatic_time.h"
+#include "audio_point.h"
 #include <libcxml/cxml.h>
 #include <boost/optional.hpp>
 #include <boost/filesystem.hpp>
@@ -30,30 +31,6 @@ namespace xmlpp {
        class Element;
 }
 
-class AudioPoint
-{
-public:
-       enum Type {
-               PEAK,
-               RMS,
-               COUNT
-       };
-
-       AudioPoint ();
-       AudioPoint (cxml::ConstNodePtr node);
-       AudioPoint (AudioPoint const &);
-       AudioPoint& operator= (AudioPoint const &);
-
-       void as_xml (xmlpp::Element *) const;
-
-       float& operator[] (int t) {
-               return _data[t];
-       }
-
-private:
-       float _data[COUNT];
-};
-
 class AudioAnalysis : public boost::noncopyable
 {
 public:
diff --git a/src/lib/audio_point.cc b/src/lib/audio_point.cc
new file mode 100644 (file)
index 0000000..3c17234
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+    Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
+
+    This program 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,
+    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.
+
+*/
+
+#include "audio_point.h"
+#include "raw_convert.h"
+#include <libxml++/libxml++.h>
+
+using std::string;
+
+AudioPoint::AudioPoint ()
+{
+       for (int i = 0; i < COUNT; ++i) {
+               _data[i] = 0;
+       }
+}
+
+AudioPoint::AudioPoint (cxml::ConstNodePtr node)
+{
+       _data[PEAK] = node->number_child<float> ("Peak");
+       _data[RMS] = node->number_child<float> ("RMS");
+}
+
+AudioPoint::AudioPoint (AudioPoint const & other)
+{
+       for (int i = 0; i < COUNT; ++i) {
+               _data[i] = other._data[i];
+       }
+}
+
+AudioPoint &
+AudioPoint::operator= (AudioPoint const & other)
+{
+       if (this == &other) {
+               return *this;
+       }
+
+       for (int i = 0; i < COUNT; ++i) {
+               _data[i] = other._data[i];
+       }
+
+       return *this;
+}
+
+void
+AudioPoint::as_xml (xmlpp::Element* parent) const
+{
+       parent->add_child ("Peak")->add_child_text (raw_convert<string> (_data[PEAK]));
+       parent->add_child ("RMS")->add_child_text (raw_convert<string> (_data[RMS]));
+}
diff --git a/src/lib/audio_point.h b/src/lib/audio_point.h
new file mode 100644 (file)
index 0000000..3dfe470
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+    Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
+
+    This program 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,
+    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.
+
+*/
+
+#include <libcxml/cxml.h>
+
+namespace xmlpp {
+       class Element;
+}
+
+class AudioPoint
+{
+public:
+       enum Type {
+               PEAK,
+               RMS,
+               COUNT
+       };
+
+       AudioPoint ();
+       AudioPoint (cxml::ConstNodePtr node);
+       AudioPoint (AudioPoint const &);
+       AudioPoint& operator= (AudioPoint const &);
+
+       void as_xml (xmlpp::Element *) const;
+
+       float& operator[] (int t) {
+               return _data[t];
+       }
+
+private:
+       float _data[COUNT];
+};
index e79f11f771e478aa23ae0c057fe00d682b4de677..ae3059af4246628ce1770b0414eb0bad31e66714 100644 (file)
@@ -28,6 +28,7 @@ sources = """
           audio_decoder_stream.cc
           audio_filter.cc
           audio_mapping.cc
+          audio_point.cc
           audio_processor.cc
           audio_stream.cc
           cinema.cc