X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Ftypes.cc;h=d052b2a9a71dd3c458bc9126785a15af263e8e6c;hb=cb990adba9c57e5107ef2aa9716cf0a26c1df83d;hp=035c8363db10a1d8ba67c40134811fa9467b4611;hpb=b655bd3359e9a014da68cd9f61e2a5b1d233247d;p=dcpomatic.git diff --git a/src/lib/types.cc b/src/lib/types.cc index 035c8363d..d052b2a9a 100644 --- a/src/lib/types.cc +++ b/src/lib/types.cc @@ -17,10 +17,16 @@ */ +#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) { @@ -32,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"; + } + + assert (false); + return ""; +} + + +Resolution +string_to_resolution (string s) +{ + if (s == "2K") { + return RESOLUTION_2K; + } + + if (s == "4K") { + return RESOLUTION_4K; + } + + 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)); +}