#include "change_signaller.h"
#include "dcpomatic_time.h"
#include "signaller.h"
-#include "types.h"
#include "user_property.h"
+#include "text_type.h"
#include <libcxml/cxml.h>
#include <boost/filesystem.hpp>
#include <boost/signals2.hpp>
class Job;
class Film;
class AtmosContent;
+class AudioContent;
+class TextContent;
+class VideoContent;
class ContentProperty
{
return _position;
}
- void set_trim_start (dcpomatic::ContentTime);
+ void set_trim_start(std::shared_ptr<const Film> film, dcpomatic::ContentTime);
dcpomatic::ContentTime trim_start () const {
boost::mutex::scoped_lock lm (_mutex);
return position() + length_after_trim(film);
}
+ dcpomatic::DCPTimePeriod period(std::shared_ptr<const Film> film) const {
+ return { position(), end(film) };
+ }
+
dcpomatic::DCPTime length_after_trim (std::shared_ptr<const Film> film) const;
boost::optional<double> video_frame_rate () const {
return _video_frame_rate;
}
- void set_video_frame_rate (double r);
+ void set_video_frame_rate(std::shared_ptr<const Film> film, double r);
void unset_video_frame_rate ();
double active_video_frame_rate (std::shared_ptr<const Film> film) const;
std::shared_ptr<VideoContent> video;
std::shared_ptr<AudioContent> audio;
- std::list<std::shared_ptr<TextContent>> text;
+ std::vector<std::shared_ptr<TextContent>> text;
std::shared_ptr<AtmosContent> atmos;
std::shared_ptr<TextContent> only_text () const;
friend struct best_dcp_frame_rate_test_single;
friend struct best_dcp_frame_rate_test_double;
friend struct audio_sampling_rate_test;
- template<class, class> friend class ChangeSignaller;
+ friend struct subtitle_font_id_change_test2;
+ template<class, class> friend class ChangeSignalDespatcher;
void signal_change (ChangeType, int);
* else (either some video happening at the same time, or the rate of the DCP).
*/
boost::optional<double> _video_frame_rate;
- bool _change_signals_frequent;
+ bool _change_signals_frequent = false;
};
typedef ChangeSignaller<Content, int> ContentChangeSignaller;
+typedef ChangeSignalDespatcher<Content, int> ContentChangeSignalDespatcher;
#endif