/*
- Copyright (C) 2016 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2016-2020 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
#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>
+#include <boost/atomic.hpp>
#include <vector>
#include <string>
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 ();
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::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<DCPTimePeriod> _last;
+ boost::optional<dcpomatic::DCPTimePeriod> _last;
+
+ boost::atomic<bool> _stop;
};