projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rename SafeStringStream -> locked_stringstream. Bump deps for removal of stringstream.
[dcpomatic.git]
/
src
/
wx
/
colour_conversion_editor.cc
diff --git
a/src/wx/colour_conversion_editor.cc
b/src/wx/colour_conversion_editor.cc
index 36ca074fa0765efae1429ee4b5ddb3e876acd18a..79365bf88e52534fcea6ff45113da6cc6172c532 100644
(file)
--- a/
src/wx/colour_conversion_editor.cc
+++ b/
src/wx/colour_conversion_editor.cc
@@
-1,42
+1,42
@@
/*
Copyright (C) 2013-2015 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
+ 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.
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
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 <http://www.gnu.org/licenses/>.
*/
#include "lib/colour_conversion.h"
*/
#include "lib/colour_conversion.h"
-#include "lib/safe_stringstream.h"
#include "lib/raw_convert.h"
#include "wx_util.h"
#include "colour_conversion_editor.h"
#include "lib/raw_convert.h"
#include "wx_util.h"
#include "colour_conversion_editor.h"
+#include <locked_sstream.h>
#include <dcp/gamma_transfer_function.h>
#include <dcp/modified_gamma_transfer_function.h>
#include <wx/spinctrl.h>
#include <wx/gbsizer.h>
#include <dcp/gamma_transfer_function.h>
#include <dcp/modified_gamma_transfer_function.h>
#include <wx/spinctrl.h>
#include <wx/gbsizer.h>
-#include <boost/lexical_cast.hpp>
#include <iostream>
using std::string;
using std::cout;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
#include <iostream>
using std::string;
using std::cout;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
-using boost::lexical_cast;
ColourConversionEditor::ColourConversionEditor (wxWindow* parent, bool yuv)
: wxPanel (parent, wxID_ANY)
ColourConversionEditor::ColourConversionEditor (wxWindow* parent, bool yuv)
: wxPanel (parent, wxID_ANY)
+ , _ignore_chromaticity_changed (false)
{
wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
SetSizer (overall_sizer);
{
wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
SetSizer (overall_sizer);
@@
-245,7
+245,9
@@
ColourConversionEditor::set (ColourConversion conversion)
_yuv_to_rgb->SetSelection (conversion.yuv_to_rgb ());
_yuv_to_rgb->SetSelection (conversion.yuv_to_rgb ());
- SafeStringStream s;
+ _ignore_chromaticity_changed = true;
+
+ locked_stringstream s;
s.setf (std::ios::fixed, std::ios::floatfield);
s.precision (6);
s.setf (std::ios::fixed, std::ios::floatfield);
s.precision (6);
@@
-280,6
+282,8
@@
ColourConversionEditor::set (ColourConversion conversion)
s << conversion.white().y;
_white_y->SetValue (std_to_wx (s.str ()));
s << conversion.white().y;
_white_y->SetValue (std_to_wx (s.str ()));
+ _ignore_chromaticity_changed = false;
+
if (conversion.adjusted_white ()) {
_adjust_white->SetValue (true);
s.str ("");
if (conversion.adjusted_white ()) {
_adjust_white->SetValue (true);
s.str ("");
@@
-294,6
+298,7
@@
ColourConversionEditor::set (ColourConversion conversion)
update_rgb_to_xyz ();
update_bradford ();
update_rgb_to_xyz ();
update_bradford ();
+ changed ();
}
ColourConversion
}
ColourConversion
@@
-365,6
+370,10
@@
ColourConversionEditor::changed ()
void
ColourConversionEditor::chromaticity_changed ()
{
void
ColourConversionEditor::chromaticity_changed ()
{
+ if (_ignore_chromaticity_changed) {
+ return;
+ }
+
update_rgb_to_xyz ();
changed ();
}
update_rgb_to_xyz ();
changed ();
}
@@
-385,7
+394,7
@@
ColourConversionEditor::update_bradford ()
boost::numeric::ublas::matrix<double> m = get().bradford ();
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
boost::numeric::ublas::matrix<double> m = get().bradford ();
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
-
SafeStringS
tream s;
+
locked_strings
tream s;
s.setf (std::ios::fixed, std::ios::floatfield);
s.precision (7);
s << m (i, j);
s.setf (std::ios::fixed, std::ios::floatfield);
s.precision (7);
s << m (i, j);
@@
-400,7
+409,7
@@
ColourConversionEditor::update_rgb_to_xyz ()
boost::numeric::ublas::matrix<double> m = get().rgb_to_xyz ();
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
boost::numeric::ublas::matrix<double> m = get().rgb_to_xyz ();
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
-
SafeStringS
tream s;
+
locked_strings
tream s;
s.setf (std::ios::fixed, std::ios::floatfield);
s.precision (7);
s << m (i, j);
s.setf (std::ios::fixed, std::ios::floatfield);
s.precision (7);
s << m (i, j);
@@
-433,7
+442,7
@@
ColourConversionEditor::set_spin_ctrl (wxSpinCtrlDouble* control, double value)
void
ColourConversionEditor::set_text_ctrl (wxTextCtrl* control, double value)
{
void
ColourConversionEditor::set_text_ctrl (wxTextCtrl* control, double value)
{
-
SafeStringS
tream s;
+
locked_strings
tream s;
s.precision (7);
s << value;
control->SetValue (std_to_wx (s.str ()));
s.precision (7);
s << value;
control->SetValue (std_to_wx (s.str ()));