Another macOS std::list boost::thread SNAFU.
[dcpomatic.git] / src / lib / hints.h
index 6ee398c88c12d6edb77013ab1b8174eb54d1bdc2..db7ee49b60007bf12f0ab5336df9efb409f36ce5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2016 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2016-2019 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -21,6 +21,7 @@
 #include "signaller.h"
 #include "player_text.h"
 #include "types.h"
+#include "dcp_text_track.h"
 #include "dcpomatic_time.h"
 #include <boost/weak_ptr.hpp>
 #include <boost/signals2.hpp>
 
 class Film;
 
-class Hints : public Signaller
+class Hints : public Signaller, public ExceptionStore
 {
 public:
-       Hints (boost::weak_ptr<const Film> film);
+       explicit Hints (boost::weak_ptr<const Film> film);
        ~Hints ();
 
        void start ();
@@ -44,15 +45,16 @@ public:
 
 private:
        void thread ();
-       void stop_thread ();
        void hint (std::string h);
-       void text (PlayerText text, TextType type, DCPTimePeriod period);
+       void text (PlayerText text, TextType type, dcpomatic::DCPTimePeriod period);
 
        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<DCPTimePeriod> _last;
+       boost::optional<dcpomatic::DCPTimePeriod> _last;
+
+       boost::atomic<bool> _stop;
 };