X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fvideo_content_scale.h;h=845c71a52f5106616b2b2c4f53a373041947032b;hp=6b718d5741e09380d47abaff3e42268937178471;hb=8f12e84009d7c2685bb2eeb32665876463d4e6e5;hpb=f90d74f7a0382f0dc63eef81bd553d7a7b38edb2 diff --git a/src/lib/video_content_scale.h b/src/lib/video_content_scale.h index 6b718d574..845c71a52 100644 --- a/src/lib/video_content_scale.h +++ b/src/lib/video_content_scale.h @@ -1,28 +1,29 @@ /* - Copyright (C) 2013-2014 Carl Hetherington + Copyright (C) 2013-2018 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ #ifndef DCPOMATIC_VIDEO_CONTENT_SCALE_H #define DCPOMATIC_VIDEO_CONTENT_SCALE_H -#include -#include #include +#include +#include namespace cxml { class Node; @@ -39,11 +40,11 @@ class VideoContentScale { public: VideoContentScale (); - VideoContentScale (Ratio const *); - VideoContentScale (bool); - VideoContentScale (boost::shared_ptr); + explicit VideoContentScale (Ratio const *); + explicit VideoContentScale (bool); + explicit VideoContentScale (boost::shared_ptr); - dcp::Size size (boost::shared_ptr, dcp::Size, dcp::Size, int round) const; + dcp::Size size (boost::shared_ptr, dcp::Size display_container, dcp::Size film_container) const; std::string id () const; std::string name () const; void as_xml (xmlpp::Node *) const; @@ -60,14 +61,17 @@ public: static std::vector all () { return _scales; } - static VideoContentScale from_id (std::string id); private: /** a ratio to stretch the content to, or 0 for no stretch */ Ratio const * _ratio; - /** true if we want to scale the content */ + /** true if we want to change the size of the content in any way */ bool _scale; + /* If _ratio is 0 and _scale is false there is no scale at all (i.e. + the content is used at its original size) + */ + static std::vector _scales; };