Move Rating out to a separate file.
authorCarl Hetherington <cth@carlh.net>
Tue, 1 Mar 2022 15:27:59 +0000 (16:27 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 1 Mar 2022 15:27:59 +0000 (16:27 +0100)
src/cpl.h
src/rating.cc [new file with mode: 0644]
src/rating.h [new file with mode: 0644]
src/types.cc
src/types.h
src/wscript
test/stream_operators.h

index 18b00098db59dc4b67b9ec3cdf9b095f8a995343..66310247b5aa5358c04d3ff7bf02ea06da53b904 100644 (file)
--- a/src/cpl.h
+++ b/src/cpl.h
@@ -45,6 +45,7 @@
 #include "certificate.h"
 #include "key.h"
 #include "language_tag.h"
+#include "rating.h"
 #include "types.h"
 #include <boost/filesystem.hpp>
 #include <boost/function.hpp>
diff --git a/src/rating.cc b/src/rating.cc
new file mode 100644 (file)
index 0000000..2064c64
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+    Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net>
+
+    This file is part of libdcp.
+
+    libdcp 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.
+
+    libdcp 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 libdcp.  If not, see <http://www.gnu.org/licenses/>.
+
+    In addition, as a special exception, the copyright holders give
+    permission to link the code of portions of this program with the
+    OpenSSL library under certain conditions as described in each
+    individual source file, and distribute linked combinations
+    including the two.
+
+    You must obey the GNU General Public License in all respects
+    for all of the code used other than OpenSSL.  If you modify
+    file(s) with this exception, you may extend this exception to your
+    version of the file(s), but you are not obligated to do so.  If you
+    do not wish to do so, delete this exception statement from your
+    version.  If you delete this exception statement from all source
+    files in the program, then also delete it here.
+*/
+
+
+#include "rating.h"
+#include <libcxml/cxml.h>
+
+
+using namespace dcp;
+
+
+Rating::Rating (cxml::ConstNodePtr node)
+       : agency(node->string_child("Agency"))
+       , label(node->string_child("Label"))
+{
+       node->done ();
+}
+
+
+void
+Rating::as_xml (xmlpp::Element* parent) const
+{
+       parent->add_child("Agency")->add_child_text(agency);
+       parent->add_child("Label")->add_child_text(label);
+}
+
+
+bool
+dcp::operator== (Rating const & a, Rating const & b)
+{
+       return a.agency == b.agency && a.label == b.label;
+}
+
+
diff --git a/src/rating.h b/src/rating.h
new file mode 100644 (file)
index 0000000..0fb912b
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+    Copyright (C) 2012-2022 Carl Hetherington <cth@carlh.net>
+
+    This file is part of libdcp.
+
+    libdcp 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.
+
+    libdcp 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 libdcp.  If not, see <http://www.gnu.org/licenses/>.
+
+    In addition, as a special exception, the copyright holders give
+    permission to link the code of portions of this program with the
+    OpenSSL library under certain conditions as described in each
+    individual source file, and distribute linked combinations
+    including the two.
+
+    You must obey the GNU General Public License in all respects
+    for all of the code used other than OpenSSL.  If you modify
+    file(s) with this exception, you may extend this exception to your
+    version of the file(s), but you are not obligated to do so.  If you
+    do not wish to do so, delete this exception statement from your
+    version.  If you delete this exception statement from all source
+    files in the program, then also delete it here.
+*/
+
+
+#ifndef LIBDCP_RATING_H
+#define LIBDCP_RATING_H
+
+
+#include "warnings.h"
+#include <libcxml/cxml.h>
+LIBDCP_DISABLE_WARNINGS
+#include <libxml++/libxml++.h>
+LIBDCP_ENABLE_WARNINGS
+#include <string>
+
+
+namespace dcp {
+
+
+class Rating
+{
+public:
+       Rating (std::string agency_, std::string label_)
+               : agency (agency_)
+               , label (label_)
+       {}
+
+       explicit Rating (cxml::ConstNodePtr node);
+
+       void as_xml (xmlpp::Element* parent) const;
+
+       /** URI of the agency issuing the rating */
+       std::string agency;
+       /** Rating (e.g. PG, PG-13, 12A etc) */
+       std::string label;
+};
+
+
+extern bool operator== (Rating const & a, Rating const & b);
+
+
+}
+
+
+#endif
+
index 12be1b8a051ca8bf32d8574ec027448ac57df7ae..077836e03b9127d906c297314592bacfce62e242 100644 (file)
@@ -431,29 +431,6 @@ dcp::marker_from_string (string s)
 }
 
 
-Rating::Rating (cxml::ConstNodePtr node)
-       : agency(node->string_child("Agency"))
-       , label(node->string_child("Label"))
-{
-       node->done ();
-}
-
-
-void
-Rating::as_xml (xmlpp::Element* parent) const
-{
-       parent->add_child("Agency")->add_child_text(agency);
-       parent->add_child("Label")->add_child_text(label);
-}
-
-
-bool
-dcp::operator== (Rating const & a, Rating const & b)
-{
-       return a.agency == b.agency && a.label == b.label;
-}
-
-
 ContentVersion::ContentVersion ()
        : id ("urn:uuid:" + make_uuid())
 {
index be9ba1b36b4fb870364630d280b3402d97ea207c..b68402af668d9a26cd5915a39ef6e49089284db6 100644 (file)
@@ -373,28 +373,6 @@ std::string marker_to_string (Marker);
 Marker marker_from_string (std::string);
 
 
-class Rating
-{
-public:
-       Rating (std::string agency_, std::string label_)
-               : agency (agency_)
-               , label (label_)
-       {}
-
-       explicit Rating (cxml::ConstNodePtr node);
-
-       void as_xml (xmlpp::Element* parent) const;
-
-       /** URI of the agency issuing the rating */
-       std::string agency;
-       /** Rating (e.g. PG, PG-13, 12A etc) */
-       std::string label;
-};
-
-
-extern bool operator== (Rating const & a, Rating const & b);
-
-
 enum class Status
 {
        FINAL, ///< final version
index 4108265a512d9db75457c7796edde0a0bf6f5503..4270865f3de45b38e868a6c85b7b3d1649c1dd98 100644 (file)
@@ -77,6 +77,7 @@ def build(bld):
              picture_asset.cc
              picture_asset_writer.cc
              pkl.cc
+             rating.cc
              raw_convert.cc
              reel.cc
              reel_asset.cc
@@ -168,6 +169,7 @@ def build(bld):
               picture_asset.h
               picture_asset_writer.h
               pkl.h
+              rating.h
               raw_convert.h
               rgb_xyz.h
               reel.h
index 862de698647987501d932077c0e0deb108670bff..691e3daad1566b87c961b2fdfe627a8428ef0c84 100644 (file)
@@ -32,6 +32,7 @@
 */
 
 
+#include "rating.h"
 #include "types.h"
 #include "verify.h"