diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-08-22 23:11:18 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-08-22 23:11:18 +0200 |
| commit | de40756eed79a4df7cb614e2746057f6b2a76872 (patch) | |
| tree | c33b183ecabf4ed8c756bd04cc354c83bced9f25 /src | |
| parent | ac5445d9ee7dbb6fd7dda08f965c661b01e26c90 (diff) | |
Cleanup: extract VAlign to its own files.
Diffstat (limited to 'src')
| -rw-r--r-- | src/subtitle.h | 1 | ||||
| -rw-r--r-- | src/subtitle_asset_internal.h | 1 | ||||
| -rw-r--r-- | src/types.cc | 31 | ||||
| -rw-r--r-- | src/types.h | 24 | ||||
| -rw-r--r-- | src/v_align.cc | 74 | ||||
| -rw-r--r-- | src/v_align.h | 73 | ||||
| -rw-r--r-- | src/wscript | 2 |
7 files changed, 151 insertions, 55 deletions
diff --git a/src/subtitle.h b/src/subtitle.h index 7dae7f1d..629d4772 100644 --- a/src/subtitle.h +++ b/src/subtitle.h @@ -42,6 +42,7 @@ #include "dcp_time.h" +#include "v_align.h" namespace dcp { diff --git a/src/subtitle_asset_internal.h b/src/subtitle_asset_internal.h index 8ecd9fd5..51786b47 100644 --- a/src/subtitle_asset_internal.h +++ b/src/subtitle_asset_internal.h @@ -44,6 +44,7 @@ #include "array_data.h" #include "dcp_time.h" #include "raw_convert.h" +#include "v_align.h" #include "warnings.h" LIBDCP_DISABLE_WARNINGS #include <libxml++/libxml++.h> diff --git a/src/types.cc b/src/types.cc index e2e72ad1..80931922 100644 --- a/src/types.cc +++ b/src/types.cc @@ -222,37 +222,6 @@ dcp::string_to_halign (string s) string -dcp::valign_to_string (VAlign v) -{ - switch (v) { - case VAlign::TOP: - return "top"; - case VAlign::CENTER: - return "center"; - case VAlign::BOTTOM: - return "bottom"; - } - - boost::throw_exception (MiscError("unknown subtitle valign type")); -} - - -VAlign -dcp::string_to_valign (string s) -{ - if (s == "top") { - return VAlign::TOP; - } else if (s == "center") { - return VAlign::CENTER; - } else if (s == "bottom") { - return VAlign::BOTTOM; - } - - boost::throw_exception (ReadError("unknown subtitle valign type")); -} - - -string dcp::direction_to_string (Direction v) { switch (v) { diff --git a/src/types.h b/src/types.h index f6e996c7..83b4e8e5 100644 --- a/src/types.h +++ b/src/types.h @@ -151,30 +151,6 @@ extern std::string halign_to_string (HAlign a); extern HAlign string_to_halign (std::string s); -enum class VAlign -{ - /** vertical position is distance: - * from top of screen to top of subtitle (for SMPTE 428-7:{2007,2010} or - * from top of screen to subtitle baseline (for Interop or SMPTE 428-7:2014) - */ - TOP, - /** vertical position is distance: - * from centre of screen to centre of subtitle (for SMPTE 428-7:{2007,2010}) or - * from centre of screen to subtitle baseline (for Interop or SMPTE 428-7:2014) - */ - CENTER, - /** vertical position is distance: - * from bottom of screen to bottom of subtitle (for SMPTE 428-7:{2007,2010}) or - * from bottom of screen to subtitle baseline (for Interop or SMPTE 428-7:2014) - */ - BOTTOM -}; - - -extern std::string valign_to_string (VAlign a); -extern VAlign string_to_valign (std::string s); - - /** Direction for subtitle test */ enum class Direction { diff --git a/src/v_align.cc b/src/v_align.cc new file mode 100644 index 00000000..013cccf1 --- /dev/null +++ b/src/v_align.cc @@ -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 "v_align.h" + + +using std::string; +using namespace dcp; + + + +string +dcp::valign_to_string (VAlign v) +{ + switch (v) { + case VAlign::TOP: + return "top"; + case VAlign::CENTER: + return "center"; + case VAlign::BOTTOM: + return "bottom"; + } + + boost::throw_exception(MiscError("unknown subtitle valign type")); +} + + +VAlign +dcp::string_to_valign (string s) +{ + if (s == "top") { + return VAlign::TOP; + } else if (s == "center") { + return VAlign::CENTER; + } else if (s == "bottom") { + return VAlign::BOTTOM; + } + + boost::throw_exception(ReadError("unknown subtitle valign type")); +} + + diff --git a/src/v_align.h b/src/v_align.h new file mode 100644 index 00000000..d5788a5d --- /dev/null +++ b/src/v_align.h @@ -0,0 +1,73 @@ +/* + 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_V_ALIGN_H +#define LIBDCP_V_ALIGN_H + + +#include <string> + + +namespace dcp { + + +enum class VAlign +{ + /** vertical position is distance: + * from top of screen to top of subtitle (for SMPTE 428-7:{2007,2010} or + * from top of screen to subtitle baseline (for Interop or SMPTE 428-7:2014) + */ + TOP, + /** vertical position is distance: + * from centre of screen to centre of subtitle (for SMPTE 428-7:{2007,2010}) or + * from centre of screen to subtitle baseline (for Interop or SMPTE 428-7:2014) + */ + CENTER, + /** vertical position is distance: + * from bottom of screen to bottom of subtitle (for SMPTE 428-7:{2007,2010}) or + * from bottom of screen to subtitle baseline (for Interop or SMPTE 428-7:2014) + */ + BOTTOM +}; + + +extern std::string valign_to_string(VAlign a); +extern VAlign string_to_valign(std::string s); + + +} + + +#endif + diff --git a/src/wscript b/src/wscript index a90b2d4e..6e36368b 100644 --- a/src/wscript +++ b/src/wscript @@ -119,6 +119,7 @@ def build(bld): types.cc utc_offset.cc util.cc + v_align.cc verify.cc verify_j2k.cc version.cc @@ -221,6 +222,7 @@ def build(bld): types.h utc_offset.h util.h + v_align.h verify.h verify_j2k.h version.h |
