X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fratio.h;h=016a22edca438460a13ccdb8e249ebb33b9cadcb;hp=9e9d58a4043355455a9c0b4281732611ce4d6039;hb=ac34066d5e448d1984d11a180be74e31b6e13b5c;hpb=3828baf56467224f5d44049bf1e7a7ed11f43a05 diff --git a/src/lib/ratio.h b/src/lib/ratio.h index 9e9d58a40..016a22edc 100644 --- a/src/lib/ratio.h +++ b/src/lib/ratio.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2013 Carl Hetherington + Copyright (C) 2013-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,29 +18,45 @@ */ + #ifndef DCPOMATIC_RATIO_H #define DCPOMATIC_RATIO_H + #include #include #include -class Ratio : public boost::noncopyable + +/** @class Ratio + * @brief Description of an image ratio. + */ +class Ratio { public: - Ratio (float ratio, std::string id, std::string n, std::string d) + Ratio (float ratio, std::string id, std::string in, boost::optional cn, std::string d) : _ratio (ratio) , _id (id) - , _nickname (n) + , _image_nickname (in) + , _container_nickname (cn) , _isdcf_name (d) {} + Ratio (Ratio const&) = delete; + Ratio& operator= (Ratio const&) = delete; + std::string id () const { return _id; } - std::string nickname () const { - return _nickname; + std::string image_nickname () const { + return _image_nickname; + } + + std::string container_nickname () const; + + bool used_for_container () const { + return static_cast(_container_nickname); } std::string isdcf_name () const { @@ -55,19 +71,25 @@ public: static Ratio const * from_id (std::string i); static Ratio const * from_ratio (float r); static Ratio const * nearest_from_ratio (float r); + static std::vector all () { return _ratios; } + static std::vector containers (); + private: float _ratio; /** id for use in metadata */ std::string _id; - /** nickname (e.g. Flat, Scope) */ - std::string _nickname; + /** nickname when used to describe an image ratio (e.g. Flat, Scope) */ + std::string _image_nickname; + /** nickname when used to describe a container ratio */ + boost::optional _container_nickname; std::string _isdcf_name; static std::vector _ratios; }; + #endif