From c8cdab6a2a6038b662edfb5e3d0f9b6e0171d731 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 29 Sep 2018 00:10:17 +0100 Subject: [PATCH] Move some methods to where they make more sense. --- src/types.cc | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/types.h | 3 +++ src/util.cc | 69 --------------------------------------------------- src/util.h | 2 -- 4 files changed, 73 insertions(+), 71 deletions(-) diff --git a/src/types.cc b/src/types.cc index a7c621ff..9af5f119 100644 --- a/src/types.cc +++ b/src/types.cc @@ -35,6 +35,7 @@ #include "types.h" #include "exceptions.h" #include "compose.hpp" +#include "dcp_assert.h" #include #include #include @@ -299,3 +300,72 @@ dcp::string_to_direction (string s) boost::throw_exception (DCPReadError ("unknown subtitle direction type")); } + +/** Convert a content kind to a string which can be used in a + * <ContentKind> node. + * @param kind ContentKind. + * @return string. + */ +string +dcp::content_kind_to_string (ContentKind kind) +{ + switch (kind) { + case FEATURE: + return "feature"; + case SHORT: + return "short"; + case TRAILER: + return "trailer"; + case TEST: + return "test"; + case TRANSITIONAL: + return "transitional"; + case RATING: + return "rating"; + case TEASER: + return "teaser"; + case POLICY: + return "policy"; + case PUBLIC_SERVICE_ANNOUNCEMENT: + return "psa"; + case ADVERTISEMENT: + return "advertisement"; + } + + DCP_ASSERT (false); +} + +/** Convert a string from a <ContentKind> node to a libdcp ContentKind. + * Reasonably tolerant about varying case. + * @param kind Content kind string. + * @return libdcp ContentKind. + */ +dcp::ContentKind +dcp::content_kind_from_string (string kind) +{ + transform (kind.begin(), kind.end(), kind.begin(), ::tolower); + + if (kind == "feature") { + return FEATURE; + } else if (kind == "short") { + return SHORT; + } else if (kind == "trailer") { + return TRAILER; + } else if (kind == "test") { + return TEST; + } else if (kind == "transitional") { + return TRANSITIONAL; + } else if (kind == "rating") { + return RATING; + } else if (kind == "teaser") { + return TEASER; + } else if (kind == "policy") { + return POLICY; + } else if (kind == "psa") { + return PUBLIC_SERVICE_ANNOUNCEMENT; + } else if (kind == "advertisement") { + return ADVERTISEMENT; + } + + throw BadContentKindError (kind); +} diff --git a/src/types.h b/src/types.h index 807c4df0..2652524c 100644 --- a/src/types.h +++ b/src/types.h @@ -102,6 +102,9 @@ enum ContentKind ADVERTISEMENT }; +extern std::string content_kind_to_string (ContentKind kind); +extern ContentKind content_kind_from_string (std::string kind); + enum Effect { NONE, diff --git a/src/util.cc b/src/util.cc index ac97af6e..df79fb26 100644 --- a/src/util.cc +++ b/src/util.cc @@ -148,75 +148,6 @@ dcp::make_digest (boost::filesystem::path filename, function progr return Kumu::base64encode (byte_buffer, SHA_DIGEST_LENGTH, digest, 64); } -/** Convert a content kind to a string which can be used in a - * <ContentKind> node. - * @param kind ContentKind. - * @return string. - */ -string -dcp::content_kind_to_string (ContentKind kind) -{ - switch (kind) { - case FEATURE: - return "feature"; - case SHORT: - return "short"; - case TRAILER: - return "trailer"; - case TEST: - return "test"; - case TRANSITIONAL: - return "transitional"; - case RATING: - return "rating"; - case TEASER: - return "teaser"; - case POLICY: - return "policy"; - case PUBLIC_SERVICE_ANNOUNCEMENT: - return "psa"; - case ADVERTISEMENT: - return "advertisement"; - } - - DCP_ASSERT (false); -} - -/** Convert a string from a <ContentKind> node to a libdcp ContentKind. - * Reasonably tolerant about varying case. - * @param kind Content kind string. - * @return libdcp ContentKind. - */ -dcp::ContentKind -dcp::content_kind_from_string (string kind) -{ - transform (kind.begin(), kind.end(), kind.begin(), ::tolower); - - if (kind == "feature") { - return FEATURE; - } else if (kind == "short") { - return SHORT; - } else if (kind == "trailer") { - return TRAILER; - } else if (kind == "test") { - return TEST; - } else if (kind == "transitional") { - return TRANSITIONAL; - } else if (kind == "rating") { - return RATING; - } else if (kind == "teaser") { - return TEASER; - } else if (kind == "policy") { - return POLICY; - } else if (kind == "psa") { - return PUBLIC_SERVICE_ANNOUNCEMENT; - } else if (kind == "advertisement") { - return ADVERTISEMENT; - } - - throw BadContentKindError (kind); -} - /** @param s A string. * @return true if the string contains only space, newline or tab characters, or is empty. */ diff --git a/src/util.h b/src/util.h index 9803ad03..2f3b810a 100644 --- a/src/util.h +++ b/src/util.h @@ -61,8 +61,6 @@ class OpenJPEGImage; extern std::string make_uuid (); extern std::string make_digest (boost::filesystem::path filename, boost::function); extern std::string make_digest (Data data); -extern std::string content_kind_to_string (ContentKind kind); -extern ContentKind content_kind_from_string (std::string kind); extern bool empty_or_white_space (std::string s); extern bool ids_equal (std::string a, std::string b); extern std::string remove_urn_uuid (std::string raw); -- 2.30.2