summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2017-05-07 23:38:49 +0100
committerCarl Hetherington <cth@carlh.net>2017-05-08 00:35:55 +0100
commit65f95aa3614fc1b633c38e173349b123a191447f (patch)
treee86887d6027def2341dde35a83fca3739b853119 /src/lib
parent81b8b8d2e6c548fe0cac006b6551945f5c1d77a9 (diff)
Some comments and cleanup.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/active_subtitles.cc23
-rw-r--r--src/lib/active_subtitles.h9
-rw-r--r--src/lib/player.cc2
3 files changed, 31 insertions, 3 deletions
diff --git a/src/lib/active_subtitles.cc b/src/lib/active_subtitles.cc
index 457f09643..ff6724a99 100644
--- a/src/lib/active_subtitles.cc
+++ b/src/lib/active_subtitles.cc
@@ -30,8 +30,12 @@ using std::make_pair;
using boost::weak_ptr;
using boost::shared_ptr;
+/** Get the subtitles that should be burnt into a frame at a given time.
+ * @param time Frame time.
+ * @param always_burn_subtitles Always burn subtitles even if their content is not set to burn.
+ */
list<PlayerSubtitles>
-ActiveSubtitles::get (DCPTime time, bool always_burn_subtitles) const
+ActiveSubtitles::get_burnt (DCPTime time, bool always_burn_subtitles) const
{
list<PlayerSubtitles> ps;
@@ -43,6 +47,7 @@ ActiveSubtitles::get (DCPTime time, bool always_burn_subtitles) const
}
if (!piece->content->subtitle->use() || (!always_burn_subtitles && !piece->content->subtitle->burn())) {
+ /* Not burning this piece */
continue;
}
@@ -56,6 +61,9 @@ ActiveSubtitles::get (DCPTime time, bool always_burn_subtitles) const
return ps;
}
+/** Remove subtitles that finish before a given time from our list.
+ * @param time Time to remove before.
+ */
void
ActiveSubtitles::clear_before (DCPTime time)
{
@@ -74,6 +82,11 @@ ActiveSubtitles::clear_before (DCPTime time)
_data = updated;
}
+/** Add a new subtitle with a from time.
+ * @param piece Piece that the subtitle is from.
+ * @param ps Subtitles.
+ * @param from From time for these subtitles.
+ */
void
ActiveSubtitles::add_from (weak_ptr<Piece> piece, PlayerSubtitles ps, DCPTime from)
{
@@ -83,6 +96,11 @@ ActiveSubtitles::add_from (weak_ptr<Piece> piece, PlayerSubtitles ps, DCPTime fr
_data[piece].push_back (Period (ps, from));
}
+/** Add the to time for the last subtitle added from a piece.
+ * @param piece Piece that the subtitle is from.
+ * @param to To time for the last subtitle submitted to add_from for this piece.
+ * @return Return the corresponding subtitles and their from time.
+ */
pair<PlayerSubtitles, DCPTime>
ActiveSubtitles::add_to (weak_ptr<Piece> piece, DCPTime to)
{
@@ -97,6 +115,9 @@ ActiveSubtitles::add_to (weak_ptr<Piece> piece, DCPTime to)
return make_pair (_data[piece].back().subs, _data[piece].back().from);
}
+/** @param piece A piece.
+ * @return true if we have any active subtitles from this piece.
+ */
bool
ActiveSubtitles::have (weak_ptr<Piece> piece) const
{
diff --git a/src/lib/active_subtitles.h b/src/lib/active_subtitles.h
index aa57c5b7a..97ca4c7db 100644
--- a/src/lib/active_subtitles.h
+++ b/src/lib/active_subtitles.h
@@ -18,6 +18,10 @@
*/
+/** @file src/lib/active_subtitles.h
+ * @brief ActiveSubtitles class.
+ */
+
#include "dcpomatic_time.h"
#include "player_subtitles.h"
#include <boost/noncopyable.hpp>
@@ -26,10 +30,13 @@
class Piece;
+/** @class ActiveSubtitles
+ * @brief A class to maintain information on active subtitles for Player.
+ */
class ActiveSubtitles : public boost::noncopyable
{
public:
- std::list<PlayerSubtitles> get (DCPTime time, bool always_burn_subtitles) const;
+ std::list<PlayerSubtitles> get_burnt (DCPTime time, bool always_burn_subtitles) const;
void clear_before (DCPTime time);
void clear ();
void add_from (boost::weak_ptr<Piece> piece, PlayerSubtitles ps, DCPTime from);
diff --git a/src/lib/player.cc b/src/lib/player.cc
index 06f11c617..dd064d3cd 100644
--- a/src/lib/player.cc
+++ b/src/lib/player.cc
@@ -588,7 +588,7 @@ Player::subtitles_for_frame (DCPTime time) const
{
list<PositionImage> subtitles;
- BOOST_FOREACH (PlayerSubtitles i, _active_subtitles.get(time, _always_burn_subtitles)) {
+ BOOST_FOREACH (PlayerSubtitles i, _active_subtitles.get_burnt (time, _always_burn_subtitles)) {
/* Image subtitles */
list<PositionImage> c = transform_image_subtitles (i.image);