Fix non-translated days of the week (#1455).
[dcpomatic.git] / src / lib / hints.cc
index d961b1a3022eef80240db344623b3760064b3555..d3ad9dd235f92453e76d358cc66e1d144505377a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2016-2018 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2016-2019 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -62,39 +62,29 @@ Hints::Hints (weak_ptr<const Film> film)
 }
 
 void
-Hints::stop_thread ()
+Hints::start ()
 {
-       if (_thread) {
-               try {
-                       {
-                               boost::mutex::scoped_lock lm (_mutex);
-                               _stop = true;
-                       }
-                       _thread->interrupt ();
-                       _thread->join ();
-               } catch (...) {
-
-               }
-
-               delete _thread;
-               _thread = 0;
-       }
+       _thread = new boost::thread (bind(&Hints::thread, this));
 }
 
 Hints::~Hints ()
 {
-       stop_thread ();
-}
+       if (!_thread) {
+               return;
+       }
 
-void
-Hints::start ()
-{
-       stop_thread ();
-       _long_ccap = false;
-       _overlap_ccap = false;
-       _too_many_ccap_lines = false;
-       _stop = false;
-       _thread = new boost::thread (bind(&Hints::thread, this));
+       try {
+               {
+                       boost::mutex::scoped_lock lm (_mutex);
+                       _stop = true;
+               }
+               _thread->interrupt ();
+               _thread->join ();
+       } catch (...) {
+
+       }
+
+       delete _thread;
 }
 
 void
@@ -112,11 +102,9 @@ Hints::thread ()
                BOOST_FOREACH (shared_ptr<Content> i, content) {
                        BOOST_FOREACH (shared_ptr<TextContent> j, i->text) {
                                BOOST_FOREACH (shared_ptr<Font> k, j->fonts()) {
-                                       for (int l = 0; l < FontFiles::VARIANTS; ++l) {
-                                               optional<boost::filesystem::path> const p = k->file (static_cast<FontFiles::Variant>(l));
-                                               if (p && boost::filesystem::file_size (p.get()) >= (640 * 1024)) {
-                                                       big_font_files = true;
-                                               }
+                                       optional<boost::filesystem::path> const p = k->file ();
+                                       if (p && boost::filesystem::file_size(p.get()) >= (640 * 1024)) {
+                                               big_font_files = true;
                                        }
                                }
                        }
@@ -187,6 +175,10 @@ Hints::thread ()
                hint (h);
        }
 
+       if (film->video_frame_rate() > 30) {
+               hint (String::compose(_("You are set up for a DCP at a frame rate of %1.  This frame rate is not supported by all projectors.  You are advised to change the DCP frame rate to %2."), film->video_frame_rate(), film->video_frame_rate() / 2));
+       }
+
        optional<double> lowest_speed_up;
        optional<double> highest_speed_up;
        BOOST_FOREACH (shared_ptr<const Content> i, content) {
@@ -311,7 +303,7 @@ Hints::text (PlayerText text, TextType type, DCPTimePeriod period)
 
        int lines = text.string.size();
        BOOST_FOREACH (StringText i, text.string) {
-               if (i.text().length() > CLOSED_CAPTION_LENGTH) {
+               if (utf8_strlen(i.text()) > CLOSED_CAPTION_LENGTH) {
                        ++lines;
                        if (!_long_ccap) {
                                _long_ccap = true;