X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fplayer.h;h=9b2e27251f862c468cd83e9c48b2abafadff6aa1;hb=a0614e6e3b566827381121fdb4ee73268281a70d;hp=6edfa49b7d20ada1a4acb15d1c1171ea39a3560b;hpb=89ee4cc6019036fa4fc0a6e07e052ffdc3b136ac;p=dcpomatic.git diff --git a/src/lib/player.h b/src/lib/player.h index 6edfa49b7..9b2e27251 100644 --- a/src/lib/player.h +++ b/src/lib/player.h @@ -78,12 +78,12 @@ public: }; /** @class Player - * @brief A class which can `play' a Film. + * @brief A class which can `play' a Playlist. */ class Player : public boost::enable_shared_from_this, public boost::noncopyable { public: - Player (boost::shared_ptr); + Player (boost::shared_ptr, boost::shared_ptr playlist); std::list > get_video (DCPTime time, bool accurate); boost::shared_ptr get_audio (DCPTime time, DCPTime length, bool accurate); @@ -109,16 +109,20 @@ private: friend class PlayerWrapper; friend class Piece; friend struct player_overlaps_test; + friend struct player_time_calculation_test1; + friend struct player_time_calculation_test2; + friend struct player_time_calculation_test3; void setup_pieces (); - void content_changed (boost::weak_ptr, int, bool); void flush (); void film_changed (Film::Property); + void playlist_changed (); + void playlist_content_changed (boost::weak_ptr, int, bool); std::list transform_image_subtitles (std::list) const; void update_subtitle_from_text (); Frame dcp_to_content_video (boost::shared_ptr piece, DCPTime t) const; DCPTime content_video_to_dcp (boost::shared_ptr piece, Frame f) const; - Frame dcp_to_content_audio (boost::shared_ptr piece, DCPTime t) const; + Frame dcp_to_content_audio (boost::shared_ptr piece, AudioStreamPtr stream, DCPTime t) const; ContentTime dcp_to_content_subtitle (boost::shared_ptr piece, DCPTime t) const; boost::shared_ptr black_player_video_frame (DCPTime) const; @@ -146,6 +150,7 @@ private: } boost::shared_ptr _film; + boost::shared_ptr _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; @@ -166,8 +171,9 @@ private: PlayerStatistics _statistics; - boost::signals2::scoped_connection _film_content_changed_connection; boost::signals2::scoped_connection _film_changed_connection; + boost::signals2::scoped_connection _playlist_changed_connection; + boost::signals2::scoped_connection _playlist_content_changed_connection; }; #endif