From 5229b795b9d7cafe174496fbc6bca8d62f4a3ff0 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 25 May 2015 01:37:20 +0100 Subject: [PATCH] Remove user-configurable colour conversion presets. --- src/lib/colour_conversion.cc | 23 ++++++---- src/lib/colour_conversion.h | 11 ++++- src/lib/config.cc | 29 ------------ src/lib/config.h | 10 ---- src/lib/player.cc | 2 +- src/lib/util.cc | 1 + src/wx/colour_conversion_editor.cc | 2 +- src/wx/config_dialog.cc | 53 ---------------------- src/wx/content_colour_conversion_dialog.cc | 10 ++-- src/wx/video_panel.cc | 2 +- 10 files changed, 32 insertions(+), 111 deletions(-) diff --git a/src/lib/colour_conversion.cc b/src/lib/colour_conversion.cc index 3c076b030..cb3a92c1a 100644 --- a/src/lib/colour_conversion.cc +++ b/src/lib/colour_conversion.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2013 Carl Hetherington + Copyright (C) 2013-2015 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -28,6 +28,7 @@ #include #include #include +#include #include "i18n.h" @@ -39,6 +40,8 @@ using boost::shared_ptr; using boost::optional; using boost::dynamic_pointer_cast; +vector PresetColourConversion::_presets; + ColourConversion::ColourConversion () : dcp::ColourConversion (dcp::ColourConversion::srgb_to_xyz ()) { @@ -165,7 +168,7 @@ ColourConversion::as_xml (xmlpp::Node* node) const optional ColourConversion::preset () const { - vector presets = Config::instance()->colour_conversions (); + vector presets = PresetColourConversion::all (); size_t i = 0; while (i < presets.size() && (presets[i].conversion != *this)) { ++i; @@ -233,13 +236,6 @@ PresetColourConversion::PresetColourConversion (cxml::NodePtr node, int version) } -void -PresetColourConversion::as_xml (xmlpp::Node* node) const -{ - conversion.as_xml (node); - node->add_child("Name")->add_child_text (name); -} - bool operator== (ColourConversion const & a, ColourConversion const & b) { @@ -257,3 +253,12 @@ operator== (PresetColourConversion const & a, PresetColourConversion const & b) { return a.name == b.name && a.conversion == b.conversion; } + +void +PresetColourConversion::setup_colour_conversion_presets () +{ + _presets.push_back (PresetColourConversion (_("sRGB"), dcp::ColourConversion::srgb_to_xyz ())); + _presets.push_back (PresetColourConversion (_("Rec. 601"), dcp::ColourConversion::rec601_to_xyz ())); + _presets.push_back (PresetColourConversion (_("Rec. 709"), dcp::ColourConversion::rec709_to_xyz ())); + _presets.push_back (PresetColourConversion (_("P3"), dcp::ColourConversion::p3_to_xyz ())); +} diff --git a/src/lib/colour_conversion.h b/src/lib/colour_conversion.h index 9f07e0956..1b42dffb7 100644 --- a/src/lib/colour_conversion.h +++ b/src/lib/colour_conversion.h @@ -55,10 +55,17 @@ public: PresetColourConversion (std::string, dcp::ColourConversion); PresetColourConversion (cxml::NodePtr node, int version); - void as_xml (xmlpp::Node *) const; - ColourConversion conversion; std::string name; + + static std::vector all () { + return _presets; + } + + static void setup_colour_conversion_presets (); + +private: + static std::vector _presets; }; bool operator== (ColourConversion const &, ColourConversion const &); diff --git a/src/lib/config.cc b/src/lib/config.cc index 5a0b74854..bbb7e1e0b 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -91,12 +91,6 @@ Config::set_defaults () _allowed_dcp_frame_rates.push_back (50); _allowed_dcp_frame_rates.push_back (60); - _colour_conversions.clear (); - _colour_conversions.push_back (PresetColourConversion (_("sRGB"), dcp::ColourConversion::srgb_to_xyz ())); - _colour_conversions.push_back (PresetColourConversion (_("Rec. 601"), dcp::ColourConversion::rec601_to_xyz ())); - _colour_conversions.push_back (PresetColourConversion (_("Rec. 709"), dcp::ColourConversion::rec709_to_xyz ())); - _colour_conversions.push_back (PresetColourConversion (_("P3 (from SMPTE RP 431-2)"), dcp::ColourConversion::p3_to_xyz ())); - set_kdm_email_to_default (); } @@ -187,25 +181,6 @@ Config::read () _default_j2k_bandwidth = f.optional_number_child("DefaultJ2KBandwidth").get_value_or (200000000); _default_audio_delay = f.optional_number_child("DefaultAudioDelay").get_value_or (0); - list cc = f.node_children ("ColourConversion"); - - if (!cc.empty ()) { - _colour_conversions.clear (); - } - - try { - for (list::iterator i = cc.begin(); i != cc.end(); ++i) { - /* This is a bit of a hack; use 32 (the first Film state file version for the 2.x branch) - for version 2 and 10 (the current Film state version for the 1.x branch) for version 1. - */ - _colour_conversions.push_back (PresetColourConversion (*i, version == 2 ? 32 : 10)); - } - } catch (cxml::Error) { - /* Probably failed to load an old-style ColourConversion tag; just give up */ - _colour_conversions.push_back (PresetColourConversion (_("sRGB"), dcp::ColourConversion::srgb_to_xyz ())); - _colour_conversions.push_back (PresetColourConversion (_("Rec. 709"), dcp::ColourConversion::rec709_to_xyz ())); - } - list cin = f.node_children ("Cinema"); for (list::iterator i = cin.begin(); i != cin.end(); ++i) { /* Slightly grotty two-part construction of Cinema here so that we can use @@ -355,10 +330,6 @@ Config::write () const root->add_child("DefaultJ2KBandwidth")->add_child_text (raw_convert (_default_j2k_bandwidth)); root->add_child("DefaultAudioDelay")->add_child_text (raw_convert (_default_audio_delay)); - for (vector::const_iterator i = _colour_conversions.begin(); i != _colour_conversions.end(); ++i) { - i->as_xml (root->add_child ("ColourConversion")); - } - for (list >::const_iterator i = _cinemas.begin(); i != _cinemas.end(); ++i) { (*i)->as_xml (root->add_child ("Cinema")); } diff --git a/src/lib/config.h b/src/lib/config.h index f436061e8..b39e7af3a 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -25,7 +25,6 @@ #define DCPOMATIC_CONFIG_H #include "isdcf_metadata.h" -#include "colour_conversion.h" #include "video_content.h" #include #include @@ -154,10 +153,6 @@ public: return _default_audio_delay; } - std::vector colour_conversions () const { - return _colour_conversions; - } - std::string mail_server () const { return _mail_server; } @@ -325,10 +320,6 @@ public: maybe_set (_default_audio_delay, d); } - void set_colour_conversions (std::vector const & c) { - maybe_set (_colour_conversions, c); - } - void set_mail_server (std::string s) { maybe_set (_mail_server, s); } @@ -464,7 +455,6 @@ private: std::string _dcp_issuer; int _default_j2k_bandwidth; int _default_audio_delay; - std::vector _colour_conversions; std::list > _cinemas; std::string _mail_server; std::string _mail_user; diff --git a/src/lib/player.cc b/src/lib/player.cc index 640253c6d..d5098fed7 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -307,7 +307,7 @@ Player::black_player_video_frame (DCPTime time) const _video_container_size, EYES_BOTH, PART_WHOLE, - Config::instance()->colour_conversions().front().conversion + PresetColourConversion::all().front().conversion ) ); } diff --git a/src/lib/util.cc b/src/lib/util.cc index 0b35ad539..dccf32f4d 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -325,6 +325,7 @@ dcpomatic_setup () dcp::init (); Ratio::setup_ratios (); + PresetColourConversion::setup_colour_conversion_presets (); VideoContentScale::setup_scales (); DCPContentType::setup_dcp_content_types (); Filter::setup_filters (); diff --git a/src/wx/colour_conversion_editor.cc b/src/wx/colour_conversion_editor.cc index 482e40309..be72fd001 100644 --- a/src/wx/colour_conversion_editor.cc +++ b/src/wx/colour_conversion_editor.cc @@ -197,7 +197,7 @@ ColourConversionEditor::ColourConversionEditor (wxWindow* parent) _input_gamma->SetDigits (2); _input_gamma->SetIncrement (0.1); _input_power->SetRange (0.1, 4.0); - _input_power->SetDigits (2); + _input_power->SetDigits (6); _input_power->SetIncrement (0.1); _output_gamma->SetRange (0.1, 4.0); _output_gamma->SetDigits (2); diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index 7223dd84f..e4e6dd573 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -28,14 +28,12 @@ #include #include #include -#include #include #include #include "lib/config.h" #include "lib/ratio.h" #include "lib/filter.h" #include "lib/dcp_content_type.h" -#include "lib/colour_conversion.h" #include "lib/log.h" #include "lib/util.h" #include "lib/cross.h" @@ -46,7 +44,6 @@ #include "filter_dialog.h" #include "dir_picker_ctrl.h" #include "isdcf_metadata_dialog.h" -#include "preset_colour_conversion_dialog.h" #include "server_dialog.h" #include "make_signer_chain_dialog.h" @@ -539,55 +536,6 @@ private: EditableList* _servers_list; }; -class ColourConversionsPage : public StandardPage -{ -public: - ColourConversionsPage (wxSize panel_size, int border) - : StandardPage (panel_size, border) - {} - - wxString GetName () const - { - return _("Colour Conversions"); - } - -#ifdef DCPOMATIC_OSX - wxBitmap GetLargeIcon () const - { - return wxBitmap ("colour_conversions", wxBITMAP_TYPE_PNG_RESOURCE); - } -#endif - -private: - void setup () - { - vector columns; - columns.push_back (wx_to_std (_("Name"))); - _list = new EditableList ( - _panel, - columns, - boost::bind (&Config::colour_conversions, Config::instance()), - boost::bind (&Config::set_colour_conversions, Config::instance(), _1), - boost::bind (&ColourConversionsPage::colour_conversion_column, this, _1), - 300 - ); - - _panel->GetSizer()->Add (_list, 1, wxEXPAND | wxALL, _border); - } - - void config_changed () - { - _list->refresh (); - } - - string colour_conversion_column (PresetColourConversion c) - { - return c.name; - } - - EditableList* _list; -}; - class KeysPage : public StandardPage { public: @@ -1318,7 +1266,6 @@ create_config_dialog () e->AddPage (new GeneralPage (ps, border)); e->AddPage (new DefaultsPage (ps, border)); e->AddPage (new EncodingServersPage (ps, border)); - e->AddPage (new ColourConversionsPage (ps, border)); e->AddPage (new KeysPage (ps, border)); e->AddPage (new TMSPage (ps, border)); e->AddPage (new KDMEmailPage (ps, border)); diff --git a/src/wx/content_colour_conversion_dialog.cc b/src/wx/content_colour_conversion_dialog.cc index 500a168f5..b382c3429 100644 --- a/src/wx/content_colour_conversion_dialog.cc +++ b/src/wx/content_colour_conversion_dialog.cc @@ -17,13 +17,14 @@ */ -#include #include "lib/colour_conversion.h" #include "lib/config.h" #include "lib/util.h" #include "wx_util.h" #include "content_colour_conversion_dialog.h" #include "colour_conversion_editor.h" +#include +#include using std::string; using std::vector; @@ -61,9 +62,8 @@ ContentColourConversionDialog::ContentColourConversionDialog (wxWindow* parent) _editor_connection = _editor->Changed.connect (boost::bind (&ContentColourConversionDialog::check_for_preset, this)); - vector presets = Config::instance()->colour_conversions (); - for (vector::const_iterator i = presets.begin(); i != presets.end(); ++i) { - _preset_choice->Append (std_to_wx (i->name)); + BOOST_FOREACH (PresetColourConversion const &i, PresetColourConversion::all ()) { + _preset_choice->Append (std_to_wx (i.name)); } } @@ -116,7 +116,7 @@ ContentColourConversionDialog::preset_check_clicked () void ContentColourConversionDialog::preset_choice_changed () { - vector presets = Config::instance()->colour_conversions (); + vector presets = PresetColourConversion::all (); int const s = _preset_choice->GetCurrentSelection(); if (s != -1) { set (presets[s].conversion); diff --git a/src/wx/video_panel.cc b/src/wx/video_panel.cc index c4be761db..0f241506e 100644 --- a/src/wx/video_panel.cc +++ b/src/wx/video_panel.cc @@ -249,7 +249,7 @@ VideoPanel::film_content_changed (int property) checked_set (_colour_conversion, wxT ("")); } else if (vcs->colour_conversion ()) { optional preset = vcs->colour_conversion().get().preset (); - vector cc = Config::instance()->colour_conversions (); + vector cc = PresetColourConversion::all (); if (preset) { checked_set (_colour_conversion, std_to_wx (cc[preset.get()].name)); } else { -- 2.30.2