summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-05-25 01:37:20 +0100
committerCarl Hetherington <cth@carlh.net>2015-05-25 01:37:20 +0100
commit5229b795b9d7cafe174496fbc6bca8d62f4a3ff0 (patch)
tree0031aed06535e7a190f12bde5fe0a6dd66e87f6a /src
parent8041bb9729662176eeb8d78ce4dac9dfb6896557 (diff)
Remove user-configurable colour conversion presets.
Diffstat (limited to 'src')
-rw-r--r--src/lib/colour_conversion.cc23
-rw-r--r--src/lib/colour_conversion.h11
-rw-r--r--src/lib/config.cc29
-rw-r--r--src/lib/config.h10
-rw-r--r--src/lib/player.cc2
-rw-r--r--src/lib/util.cc1
-rw-r--r--src/wx/colour_conversion_editor.cc2
-rw-r--r--src/wx/config_dialog.cc53
-rw-r--r--src/wx/content_colour_conversion_dialog.cc10
-rw-r--r--src/wx/video_panel.cc2
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 <cth@carlh.net>
+ Copyright (C) 2013-2015 Carl Hetherington <cth@carlh.net>
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 <dcp/modified_gamma_transfer_function.h>
#include <libcxml/cxml.h>
#include <libxml++/libxml++.h>
+#include <boost/foreach.hpp>
#include "i18n.h"
@@ -39,6 +40,8 @@ using boost::shared_ptr;
using boost::optional;
using boost::dynamic_pointer_cast;
+vector<PresetColourConversion> PresetColourConversion::_presets;
+
ColourConversion::ColourConversion ()
: dcp::ColourConversion (dcp::ColourConversion::srgb_to_xyz ())
{
@@ -165,7 +168,7 @@ ColourConversion::as_xml (xmlpp::Node* node) const
optional<size_t>
ColourConversion::preset () const
{
- vector<PresetColourConversion> presets = Config::instance()->colour_conversions ();
+ vector<PresetColourConversion> 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<PresetColourConversion> all () {
+ return _presets;
+ }
+
+ static void setup_colour_conversion_presets ();
+
+private:
+ static std::vector<PresetColourConversion> _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<int>("DefaultJ2KBandwidth").get_value_or (200000000);
_default_audio_delay = f.optional_number_child<int>("DefaultAudioDelay").get_value_or (0);
- list<cxml::NodePtr> cc = f.node_children ("ColourConversion");
-
- if (!cc.empty ()) {
- _colour_conversions.clear ();
- }
-
- try {
- for (list<cxml::NodePtr>::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<cxml::NodePtr> cin = f.node_children ("Cinema");
for (list<cxml::NodePtr>::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<string> (_default_j2k_bandwidth));
root->add_child("DefaultAudioDelay")->add_child_text (raw_convert<string> (_default_audio_delay));
- for (vector<PresetColourConversion>::const_iterator i = _colour_conversions.begin(); i != _colour_conversions.end(); ++i) {
- i->as_xml (root->add_child ("ColourConversion"));
- }
-
for (list<shared_ptr<Cinema> >::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 <dcp/metadata.h>
#include <dcp/certificates.h>
@@ -154,10 +153,6 @@ public:
return _default_audio_delay;
}
- std::vector<PresetColourConversion> 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<PresetColourConversion> 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<PresetColourConversion> _colour_conversions;
std::list<boost::shared_ptr<Cinema> > _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 <wx/preferences.h>
#include <wx/filepicker.h>
#include <wx/spinctrl.h>
-#include <dcp/colour_matrix.h>
#include <dcp/exceptions.h>
#include <dcp/signer.h>
#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<string, ServerDialog>* _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<string> columns;
- columns.push_back (wx_to_std (_("Name")));
- _list = new EditableList<PresetColourConversion, PresetColourConversionDialog> (
- _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<PresetColourConversion, PresetColourConversionDialog>* _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 <wx/statline.h>
#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 <wx/statline.h>
+#include <boost/foreach.hpp>
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<PresetColourConversion> presets = Config::instance()->colour_conversions ();
- for (vector<PresetColourConversion>::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<PresetColourConversion> presets = Config::instance()->colour_conversions ();
+ vector<PresetColourConversion> 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<size_t> preset = vcs->colour_conversion().get().preset ();
- vector<PresetColourConversion> cc = Config::instance()->colour_conversions ();
+ vector<PresetColourConversion> cc = PresetColourConversion::all ();
if (preset) {
checked_set (_colour_conversion, std_to_wx (cc[preset.get()].name));
} else {