X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Ftypes.cc;h=bc4f5f8d9d425d0d9305f1015c124ee92590dcb7;hb=98060a4e6f02b418f30b4b736e5880a357454c40;hp=c077bad3e8c2b66607a92e4a54b613dda465327c;hpb=996b0c06e23bcb6b300d7b8799df94993692e07d;p=dcpomatic.git diff --git a/src/lib/types.cc b/src/lib/types.cc index c077bad3e..bc4f5f8d9 100644 --- a/src/lib/types.cc +++ b/src/lib/types.cc @@ -21,6 +21,7 @@ using std::max; using std::min; +using std::string; bool operator== (Crop const & a, Crop const & b) { @@ -32,25 +33,35 @@ bool operator!= (Crop const & a, Crop const & b) return !(a == b); } - -/** @param other A Rect. - * @return The intersection of this with `other'. +/** @param r Resolution. + * @return Untranslated string representation. */ -Rect -Rect::intersection (Rect const & other) const +string +resolution_to_string (Resolution r) { - int const tx = max (x, other.x); - int const ty = max (y, other.y); - - return Rect ( - tx, ty, - min (x + width, other.x + other.width) - tx, - min (y + height, other.y + other.height) - ty - ); + switch (r) { + case RESOLUTION_2K: + return "2K"; + case RESOLUTION_4K: + return "4K"; + } + + assert (false); + return ""; } -bool -Rect::contains (Position p) const + +Resolution +string_to_resolution (string s) { - return (p.x >= x && p.x <= (x + width) && p.y >= y && p.y <= (y + height)); + if (s == "2K") { + return RESOLUTION_2K; + } + + if (s == "4K") { + return RESOLUTION_4K; + } + + assert (false); + return RESOLUTION_2K; }