From: Carl Hetherington Date: Tue, 22 Aug 2023 21:18:20 +0000 (+0200) Subject: Cleanup: extract HAlign to its own files. X-Git-Tag: v1.8.78~2 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=b631f906ac2adb0e7a6c34d3535a31dd6b2e6f27;p=libdcp.git Cleanup: extract HAlign to its own files. --- diff --git a/src/h_align.cc b/src/h_align.cc new file mode 100644 index 00000000..7169fb04 --- /dev/null +++ b/src/h_align.cc @@ -0,0 +1,74 @@ +/* + Copyright (C) 2023 Carl Hetherington + + 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 . + + 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 index 00000000..7b843fc8 --- /dev/null +++ b/src/h_align.h @@ -0,0 +1,61 @@ +/* + Copyright (C) 2023 Carl Hetherington + + 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 . + + 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 + + +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 + diff --git a/src/subtitle.h b/src/subtitle.h index 629d4772..1ca3f9d4 100644 --- a/src/subtitle.h +++ b/src/subtitle.h @@ -42,6 +42,7 @@ #include "dcp_time.h" +#include "h_align.h" #include "v_align.h" diff --git a/src/subtitle_asset_internal.h b/src/subtitle_asset_internal.h index 51786b47..adf2c994 100644 --- a/src/subtitle_asset_internal.h +++ b/src/subtitle_asset_internal.h @@ -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" diff --git a/src/types.cc b/src/types.cc index 80931922..0546c476 100644 --- a/src/types.cc +++ b/src/types.cc @@ -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) { diff --git a/src/types.h b/src/types.h index 83b4e8e5..bcb6da5b 100644 --- a/src/types.h +++ b/src/types.h @@ -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 { diff --git a/src/wscript b/src/wscript index 6e36368b..a408d7cd 100644 --- a/src/wscript +++ b/src/wscript @@ -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