X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fcolour_conversion.h;h=580374623cf9d29f5b2fb4a3c6f10178f3f4270d;hb=79af506328e80ad84cbe0dddaf2e1a21d4df1fe8;hp=fa1a955e1e414806fe84453657e3b09c6c49a03b;hpb=d324fc102df00d6dc62614938f78cf983a101dd4;p=dcpomatic.git diff --git a/src/lib/colour_conversion.h b/src/lib/colour_conversion.h index fa1a955e1..580374623 100644 --- a/src/lib/colour_conversion.h +++ b/src/lib/colour_conversion.h @@ -25,47 +25,54 @@ #undef check #endif -#include -#include -#include +#include #include namespace xmlpp { class Node; } -class ColourConversion +class ColourConversion : public dcp::ColourConversion { public: ColourConversion (); - ColourConversion (double, bool, double const matrix[3][3], double); - ColourConversion (cxml::NodePtr); + ColourConversion (dcp::ColourConversion); + ColourConversion (cxml::NodePtr, int version); virtual void as_xml (xmlpp::Node *) const; std::string identifier () const; boost::optional preset () const; - double input_gamma; - bool input_gamma_linearised; - boost::numeric::ublas::matrix matrix; - double output_gamma; + static boost::optional from_xml (cxml::NodePtr, int version); }; class PresetColourConversion { public: PresetColourConversion (); - PresetColourConversion (std::string, double, bool, double const matrix[3][3], double); - PresetColourConversion (cxml::NodePtr); + PresetColourConversion (std::string n, std::string i, dcp::ColourConversion); + PresetColourConversion (cxml::NodePtr node, int version); - void as_xml (xmlpp::Node *) const; - - std::string name; ColourConversion conversion; + std::string name; + /** an internal short (non-internationalised) name for this preset */ + std::string id; + + static std::vector all () { + return _presets; + } + + static PresetColourConversion from_id (std::string id); + + static void setup_colour_conversion_presets (); + +private: + static std::vector _presets; }; bool operator== (ColourConversion const &, ColourConversion const &); bool operator!= (ColourConversion const &, ColourConversion const &); +bool operator== (PresetColourConversion const &, PresetColourConversion const &); #endif