Tidy up Hints a bit.
[dcpomatic.git] / src / lib / hints.h
index 00c2486e7e430e094ab1fcbdfc5def77cb70c29f..7a907462562687ab74e6e5eb2daf85e8c286b4e2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2016-2019 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2016-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 #include "dcpomatic_time.h"
 #include <boost/weak_ptr.hpp>
 #include <boost/signals2.hpp>
+#include <boost/atomic.hpp>
 #include <vector>
 #include <string>
 
 class Film;
 
-class Hints : public Signaller
+class Hints : public Signaller, public ExceptionStore
 {
 public:
        explicit Hints (boost::weak_ptr<const Film> film);
@@ -47,15 +48,27 @@ private:
        void thread ();
        void hint (std::string h);
        void text (PlayerText text, TextType type, dcpomatic::DCPTimePeriod period);
+       boost::shared_ptr<const Film> film () const;
+
+       void check_big_font_files ();
+       void check_few_audio_channels ();
+       void check_upmixers ();
+       void check_incorrect_container ();
+       void check_unusual_container ();
+       void check_high_j2k_bandwidth ();
+       void check_frame_rate ();
+       void check_speed_up ();
+       void check_vob ();
+       void check_3d_in_2d ();
+       void check_loudness ();
 
        boost::weak_ptr<const Film> _film;
-       boost::thread* _thread;
+       boost::thread _thread;
 
        bool _long_ccap;
        bool _overlap_ccap;
        bool _too_many_ccap_lines;
        boost::optional<dcpomatic::DCPTimePeriod> _last;
 
-       boost::mutex _mutex;
-       bool _stop;
+       boost::atomic<bool> _stop;
 };