Remove all use of stringstream in an attempt to fix
[dcpomatic.git] / src / wx / colour_conversion_editor.cc
index 79365bf88e52534fcea6ff45113da6cc6172c532..3d4363cb970e65c6e1008d7569b54c5ffafde478 100644 (file)
@@ -22,7 +22,6 @@
 #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>
@@ -247,51 +246,32 @@ ColourConversionEditor::set (ColourConversion conversion)
 
        _ignore_chromaticity_changed = true;
 
-       locked_stringstream s;
-       s.setf (std::ios::fixed, std::ios::floatfield);
-       s.precision (6);
-
-       s << conversion.red().x;
-       _red_x->SetValue (std_to_wx (s.str ()));
-
-       s.str ("");
-       s << conversion.red().y;
-       _red_y->SetValue (std_to_wx (s.str ()));
-
-       s.str ("");
-       s << conversion.green().x;
-       _green_x->SetValue (std_to_wx (s.str ()));
-
-       s.str ("");
-       s << conversion.green().y;
-       _green_y->SetValue (std_to_wx (s.str ()));
-
-       s.str ("");
-       s << conversion.blue().x;
-       _blue_x->SetValue (std_to_wx (s.str ()));
-
-       s.str ("");
-       s << conversion.blue().y;
-       _blue_y->SetValue (std_to_wx (s.str ()));
-
-       s.str ("");
-       s << conversion.white().x;
-       _white_x->SetValue (std_to_wx (s.str ()));
-
-       s.str ("");
-       s << conversion.white().y;
-       _white_y->SetValue (std_to_wx (s.str ()));
+       char buffer[256];
+       snprintf (buffer, sizeof (buffer), "%.6f", conversion.red().x);
+       _red_x->SetValue (std_to_wx (buffer));
+       snprintf (buffer, sizeof (buffer), "%.6f", conversion.red().y);
+       _red_y->SetValue (std_to_wx (buffer));
+       snprintf (buffer, sizeof (buffer), "%.6f", conversion.green().x);
+       _green_x->SetValue (std_to_wx (buffer));
+       snprintf (buffer, sizeof (buffer), "%.6f", conversion.green().y);
+       _green_y->SetValue (std_to_wx (buffer));
+       snprintf (buffer, sizeof (buffer), "%.6f", conversion.blue().x);
+       _blue_x->SetValue (std_to_wx (buffer));
+       snprintf (buffer, sizeof (buffer), "%.6f", conversion.blue().y);
+       _blue_y->SetValue (std_to_wx (buffer));
+       snprintf (buffer, sizeof (buffer), "%.6f", conversion.white().x);
+       _white_x->SetValue (std_to_wx (buffer));
+       snprintf (buffer, sizeof (buffer), "%.6f", conversion.white().y);
+       _white_y->SetValue (std_to_wx (buffer));
 
        _ignore_chromaticity_changed = false;
 
        if (conversion.adjusted_white ()) {
                _adjust_white->SetValue (true);
-               s.str ("");
-               s << conversion.adjusted_white().get().x;
-               _adjusted_white_x->SetValue (std_to_wx (s.str ()));
-               s.str ("");
-               s << conversion.adjusted_white().get().y;
-               _adjusted_white_y->SetValue (std_to_wx (s.str ()));
+               snprintf (buffer, sizeof (buffer), "%.6f", conversion.adjusted_white().get().x);
+               _adjusted_white_x->SetValue (std_to_wx (buffer));
+               snprintf (buffer, sizeof (buffer), "%.6f", conversion.adjusted_white().get().y);
+               _adjusted_white_y->SetValue (std_to_wx (buffer));
        } else {
                _adjust_white->SetValue (false);
        }
@@ -394,11 +374,9 @@ 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) {
-                       locked_stringstream s;
-                       s.setf (std::ios::fixed, std::ios::floatfield);
-                       s.precision (7);
-                       s << m (i, j);
-                       _bradford[i][j]->SetLabel (std_to_wx (s.str ()));
+                       char buffer[256];
+                       snprintf (buffer, sizeof (buffer), "%.7f", m (i, j));
+                       _bradford[i][j]->SetLabel (std_to_wx (buffer));
                }
        }
 }
@@ -409,11 +387,9 @@ 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) {
-                       locked_stringstream s;
-                       s.setf (std::ios::fixed, std::ios::floatfield);
-                       s.precision (7);
-                       s << m (i, j);
-                       _rgb_to_xyz[i][j]->SetLabel (std_to_wx (s.str ()));
+                       char buffer[256];
+                       snprintf (buffer, sizeof (buffer), "%.7f", m (i, j));
+                       _rgb_to_xyz[i][j]->SetLabel (std_to_wx (buffer));
                }
        }
 }
@@ -442,8 +418,7 @@ ColourConversionEditor::set_spin_ctrl (wxSpinCtrlDouble* control, double value)
 void
 ColourConversionEditor::set_text_ctrl (wxTextCtrl* control, double value)
 {
-       locked_stringstream s;
-       s.precision (7);
-       s << value;
-       control->SetValue (std_to_wx (s.str ()));
+       char buffer[256];
+       snprintf (buffer, sizeof (buffer), "%.7f", value);
+       control->SetValue (std_to_wx (buffer));
 }