Merge master.
[dcpomatic.git] / src / wx / timecode.cc
index 0453272547a65a800eef18b2bc61db41ee1b6654..07cb0be6586b6485defff73b314ad2702fac87f5 100644 (file)
@@ -85,20 +85,18 @@ Timecode::Timecode (wxWindow* parent)
 void
 Timecode::set (DCPTime t, int fps)
 {
-       int const h = t.seconds() / 3600;
-       t -= DCPTime::from_seconds (h * 3600);
-       int const m = t.seconds() / 60;
-       t -= DCPTime::from_seconds (m * 60);
-       int const s = t.seconds();
-       t -= DCPTime::from_seconds (s);
-       int const f = rint (t.seconds() * fps);
+       int h;
+       int m;
+       int s;
+       int f;
+       t.split (fps, h, m, s, f);
 
        checked_set (_hours, lexical_cast<string> (h));
        checked_set (_minutes, lexical_cast<string> (m));
        checked_set (_seconds, lexical_cast<string> (s));
        checked_set (_frames, lexical_cast<string> (f));
 
-       _fixed->SetLabel (wxString::Format ("%02d:%02d:%02d.%02d", h, m, s, f));
+       _fixed->SetLabel (std_to_wx (t.timecode (fps)));
 }
 
 DCPTime
@@ -117,6 +115,16 @@ Timecode::get (int fps) const
        return t;
 }
 
+void
+Timecode::clear ()
+{
+       checked_set (_hours, "");
+       checked_set (_minutes, "");
+       checked_set (_seconds, "");
+       checked_set (_frames, "");
+       _fixed->SetLabel ("");
+}
+
 void
 Timecode::changed ()
 {