Cleanup: extract HAlign to its own files.
authorCarl Hetherington <cth@carlh.net>
Tue, 22 Aug 2023 21:18:20 +0000 (23:18 +0200)
committerCarl Hetherington <cth@carlh.net>
Tue, 22 Aug 2023 21:18:20 +0000 (23:18 +0200)
src/h_align.cc [new file with mode: 0644]
src/h_align.h [new file with mode: 0644]
src/subtitle.h
src/subtitle_asset_internal.h
src/types.cc
src/types.h
src/wscript

diff --git a/src/h_align.cc b/src/h_align.cc
new file mode 100644 (file)
index 0000000..7169fb0
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+    Copyright (C) 2023 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 "exceptions.h"
+#include "h_align.h"
+
+
+using std::string;
+using namespace dcp;
+
+
+string
+dcp::halign_to_string(HAlign h)
+{
+       switch (h) {
+       case HAlign::LEFT:
+               return "left";
+       case HAlign::CENTER:
+               return "center";
+       case HAlign::RIGHT:
+               return "right";
+       }
+
+       boost::throw_exception(MiscError("unknown subtitle halign type"));
+}
+
+
+HAlign
+dcp::string_to_halign(string s)
+{
+       if (s == "left") {
+               return HAlign::LEFT;
+       } else if (s == "center") {
+               return HAlign::CENTER;
+       } else if (s == "right") {
+               return HAlign::RIGHT;
+       }
+
+       boost::throw_exception(ReadError("unknown subtitle halign type"));
+}
+
+
diff --git a/src/h_align.h b/src/h_align.h
new file mode 100644 (file)
index 0000000..7b843fc
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+    Copyright (C) 2023 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_H_ALIGN_H
+#define LIBDCP_H_ALIGN_H
+
+
+#include <string>
+
+
+namespace dcp {
+
+
+enum class HAlign
+{
+       LEFT,   ///< horizontal position is distance from left of screen to left of subtitle
+       CENTER, ///< horizontal position is distance from centre of screen to centre of subtitle
+       RIGHT,  ///< horizontal position is distance from right of screen to right of subtitle
+};
+
+
+extern std::string halign_to_string(HAlign a);
+extern HAlign string_to_halign(std::string s);
+
+
+}
+
+
+#endif
+
index 629d47724398893f9052358ee6081995342eb98f..1ca3f9d449d02c556412e9d6d588a4f2cee7706e 100644 (file)
@@ -42,6 +42,7 @@
 
 
 #include "dcp_time.h"
+#include "h_align.h"
 #include "v_align.h"
 
 
index 51786b47e47fa387b5d1cecf98250c1f567748c8..adf2c994788f037bbc8d0e52311d70c6fb3401d6 100644 (file)
@@ -43,6 +43,7 @@
 
 #include "array_data.h"
 #include "dcp_time.h"
+#include "h_align.h"
 #include "raw_convert.h"
 #include "v_align.h"
 #include "warnings.h"
index 809319225eb997baa29df9019fe91cb6e76dbb63..0546c4766ee849e8f8bceb30487b626d45883824 100644 (file)
@@ -190,37 +190,6 @@ dcp::string_to_effect (string s)
 }
 
 
-string
-dcp::halign_to_string (HAlign h)
-{
-       switch (h) {
-       case HAlign::LEFT:
-               return "left";
-       case HAlign::CENTER:
-               return "center";
-       case HAlign::RIGHT:
-               return "right";
-       }
-
-       boost::throw_exception (MiscError("unknown subtitle halign type"));
-}
-
-
-HAlign
-dcp::string_to_halign (string s)
-{
-       if (s == "left") {
-               return HAlign::LEFT;
-       } else if (s == "center") {
-               return HAlign::CENTER;
-       } else if (s == "right") {
-               return HAlign::RIGHT;
-       }
-
-       boost::throw_exception (ReadError("unknown subtitle halign type"));
-}
-
-
 string
 dcp::direction_to_string (Direction v)
 {
index 83b4e8e5dee1e222608182d16842234bcb1fc131..bcb6da5b91cbd567f94e61c4290f95d08678487d 100644 (file)
@@ -139,18 +139,6 @@ extern std::string effect_to_string (Effect e);
 extern Effect string_to_effect (std::string s);
 
 
-enum class HAlign
-{
-       LEFT,   ///< horizontal position is distance from left of screen to left of subtitle
-       CENTER, ///< horizontal position is distance from centre of screen to centre of subtitle
-       RIGHT,  ///< horizontal position is distance from right of screen to right of subtitle
-};
-
-
-extern std::string halign_to_string (HAlign a);
-extern HAlign string_to_halign (std::string s);
-
-
 /** Direction for subtitle test */
 enum class Direction
 {
index 6e36368b4ad022d4d0e3ef326be225f6bade9d88..a408d7cd683e969922d4de67b9f59425e5e7fc60 100644 (file)
@@ -60,6 +60,7 @@ def build(bld):
              font_asset.cc
              fsk.cc
              gamma_transfer_function.cc
+             h_align.cc
              identity_transfer_function.cc
              interop_load_font_node.cc
              interop_subtitle_asset.cc
@@ -159,6 +160,7 @@ def build(bld):
               frame.h
               fsk.h
               gamma_transfer_function.h
+              h_align.h
               identity_transfer_function.h
               interop_load_font_node.h
               interop_subtitle_asset.h