X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Ftypes.cc;h=694c34cc0f2aeb04d0015389d8e78b9862827ba2;hb=5189e5720bd583dbf8a4a4e89c5a1b2e61c6d214;hp=1e0f48327bfe0a35aa5097985ea859fcaebf8690;hpb=20cd8bdecb9667f7d838dbb7210f3e1a4765c662;p=dcpomatic.git diff --git a/src/lib/types.cc b/src/lib/types.cc index 1e0f48327..694c34cc0 100644 --- a/src/lib/types.cc +++ b/src/lib/types.cc @@ -18,6 +18,15 @@ */ #include "types.h" +#include "dcpomatic_assert.h" +#include "raw_convert.h" +#include +#include + +using std::max; +using std::min; +using std::string; +using boost::shared_ptr; bool operator== (Crop const & a, Crop const & b) { @@ -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)); +}