/*
- Copyright (C) 2018 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2018-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
+
#ifndef DCPOMATIC_EMPTY_H
#define DCPOMATIC_EMPTY_H
+
#include "playlist.h"
#include "dcpomatic_time.h"
#include "content_part.h"
#include <list>
+
struct empty_test1;
struct empty_test2;
+struct empty_test3;
+struct empty_test_with_overlapping_content;
struct player_subframe_test;
-class Piece;
+
class Empty
{
public:
Empty () {}
- Empty (boost::shared_ptr<const Film> film, std::list<boost::shared_ptr<Piece> > pieces, boost::function<bool (boost::shared_ptr<Piece>)> part);
+ Empty (std::shared_ptr<const Film> film, std::shared_ptr<const Playlist> playlist, std::function<bool (std::shared_ptr<const Content>)> part, dcpomatic::DCPTime length);
- DCPTime position () const {
+ dcpomatic::DCPTime position () const {
return _position;
}
- DCPTimePeriod period_at_position () const;
+ dcpomatic::DCPTimePeriod period_at_position () const;
bool done () const;
- void set_position (DCPTime amount);
+ void set_position (dcpomatic::DCPTime amount);
private:
friend struct ::empty_test1;
friend struct ::empty_test2;
+ friend struct ::empty_test3;
+ friend struct ::empty_test_with_overlapping_content;
friend struct ::player_subframe_test;
- std::list<DCPTimePeriod> _periods;
- DCPTime _position;
+ std::list<dcpomatic::DCPTimePeriod> _periods;
+ dcpomatic::DCPTime _position;
};
+
#endif