X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Ftypes.cc;h=54a8cb49202c97c93f85d5d8570cd5722eceecb2;hb=3f3727634b98ce2761a193b9d1e3fc14f51dcbd2;hp=1e0f48327bfe0a35aa5097985ea859fcaebf8690;hpb=f861018389acd9d277fe34d7621182b9b54f977f;p=dcpomatic.git diff --git a/src/lib/types.cc b/src/lib/types.cc index 1e0f48327..54a8cb492 100644 --- a/src/lib/types.cc +++ b/src/lib/types.cc @@ -17,8 +17,17 @@ */ +#include +#include +#include #include "types.h" +using std::max; +using std::min; +using std::string; +using boost::shared_ptr; +using dcp::raw_convert; + bool operator== (Crop const & a, Crop const & b) { return (a.left == b.left && a.right == b.right && a.top == b.top && a.bottom == b.bottom); @@ -29,3 +38,52 @@ bool operator!= (Crop const & a, Crop const & b) return !(a == b); } +/** @param r Resolution. + * @return Untranslated string representation. + */ +string +resolution_to_string (Resolution r) +{ + switch (r) { + case RESOLUTION_2K: + return "2K"; + case RESOLUTION_4K: + return "4K"; + } + + DCPOMATIC_ASSERT (false); + return ""; +} + + +Resolution +string_to_resolution (string s) +{ + if (s == "2K") { + return RESOLUTION_2K; + } + + if (s == "4K") { + return RESOLUTION_4K; + } + + DCPOMATIC_ASSERT (false); + return RESOLUTION_2K; +} + +Crop::Crop (shared_ptr node) +{ + left = node->number_child ("LeftCrop"); + right = node->number_child ("RightCrop"); + top = node->number_child ("TopCrop"); + bottom = node->number_child ("BottomCrop"); +} + +void +Crop::as_xml (xmlpp::Node* node) const +{ + node->add_child("LeftCrop")->add_child_text (raw_convert (left)); + node->add_child("RightCrop")->add_child_text (raw_convert (right)); + node->add_child("TopCrop")->add_child_text (raw_convert (top)); + node->add_child("BottomCrop")->add_child_text (raw_convert (bottom)); +}