#ifndef DCPOMATIC_PLAYER_H
#define DCPOMATIC_PLAYER_H
-#include "playlist.h"
#include "content.h"
#include "film.h"
#include "rect.h"
class Job;
class Film;
-class Playlist;
class AudioContent;
class Piece;
class Image;
class Resampler;
class PlayerVideo;
class ImageProxy;
-
+class Font;
+
class PlayerStatistics
{
public:
, good (0)
, skip (0)
{}
-
+
int black;
int repeat;
int good;
, good (0)
, skip (0)
{}
-
+
DCPTime silence;
int64_t good;
int64_t skip;
};
/** @class Player
- * @brief A class which can `play' a Playlist.
+ * @brief A class which can `play' a Film.
*/
class Player : public boost::enable_shared_from_this<Player>, public boost::noncopyable
{
public:
- Player (boost::shared_ptr<const Film>, boost::shared_ptr<const Playlist>);
+ Player (boost::shared_ptr<const Film>);
std::list<boost::shared_ptr<PlayerVideo> > get_video (DCPTime time, bool accurate);
boost::shared_ptr<AudioBuffers> get_audio (DCPTime time, DCPTime length, bool accurate);
void set_burn_subtitles (bool burn);
PlayerStatistics const & statistics () const;
-
+
/** Emitted when something has changed such that if we went back and emitted
* the last frame again it would look different. This is not emitted after
* a seek.
friend struct player_overlaps_test;
void setup_pieces ();
- void playlist_changed ();
void content_changed (boost::weak_ptr<Content>, int, bool);
void flush ();
void film_changed (Film::Property);
overlaps.push_back (*i);
}
}
-
+
return overlaps;
}
-
+
boost::shared_ptr<const Film> _film;
- boost::shared_ptr<const Playlist> _playlist;
/** Our pieces are ready to go; if this is false the pieces must be (re-)created before they are used */
bool _have_valid_pieces;
PlayerStatistics _statistics;
- boost::signals2::scoped_connection _playlist_changed_connection;
- boost::signals2::scoped_connection _playlist_content_changed_connection;
+ boost::signals2::scoped_connection _film_content_changed_connection;
boost::signals2::scoped_connection _film_changed_connection;
};