X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fhints.h;h=e9a75fb14dabc17664d2451ca8bf5c9d71cae479;hb=a9dde34b8772ef8b985af067e2ff709be4e3cab6;hp=3a6850860c54da63110fc9c1ce4ac92a374449e6;hpb=09d5906f44907aab5afb41ce2da887550c0011a8;p=dcpomatic.git diff --git a/src/lib/hints.h b/src/lib/hints.h index 3a6850860..e9a75fb14 100644 --- a/src/lib/hints.h +++ b/src/lib/hints.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2016 Carl Hetherington + Copyright (C) 2016-2019 Carl Hetherington This file is part of DCP-o-matic. @@ -18,10 +18,44 @@ */ -#include +#include "signaller.h" +#include "player_text.h" +#include "types.h" +#include "dcp_text_track.h" +#include "dcpomatic_time.h" +#include +#include #include #include class Film; -std::vector get_hints (boost::shared_ptr film); +class Hints : public Signaller, public ExceptionStore +{ +public: + explicit Hints (boost::weak_ptr film); + ~Hints (); + + void start (); + + boost::signals2::signal Hint; + boost::signals2::signal Progress; + boost::signals2::signal Pulse; + boost::signals2::signal Finished; + +private: + void thread (); + void hint (std::string h); + void text (PlayerText text, TextType type, dcpomatic::DCPTimePeriod period); + + boost::weak_ptr _film; + boost::thread* _thread; + + bool _long_ccap; + bool _overlap_ccap; + bool _too_many_ccap_lines; + boost::optional _last; + + boost::mutex _mutex; + bool _stop; +};