#ifndef LIBSUB_SUBTITLE_H
#define LIBSUB_SUBTITLE_H
-#include "frame_time.h"
-#include "metric_time.h"
#include "colour.h"
#include "vertical_reference.h"
#include "effect.h"
-#include "time_pair.h"
#include "font_size.h"
#include "vertical_position.h"
#include "raw_subtitle.h"
namespace sub {
-/** A piece of text with a single font, style, size etc. */
+/** @class Block
+ * @brief A block of text within a subtitle's line
+ *
+ * This represents a block of text which has a particular style (font, size, effect, colour etc.)
+ */
class Block
{
public:
/** Subtitle text in UTF-8 */
std::string text;
- std::string font;
+ boost::optional<std::string> font;
/** font size */
FontSize font_size;
bool underline; ///< true to underline
};
-/** A line of text */
+/** @class Line
+ * @brief A line of text within a subtitle.
+ *
+ * This represents a line of text which has a particular vertical position.
+ */
class Line
{
public:
bool same_metadata (RawSubtitle) const;
};
+/** @class Subtitle
+ * @brief A subtitle which has been collected into lines and blocks.
+ *
+ * This represents a chunk of text which appears and disappears at some particular
+ * times.
+ */
class Subtitle
{
public:
Subtitle (RawSubtitle s);
/** from time */
- TimePair from;
+ Time from;
/** to time */
- TimePair to;
+ Time to;
- boost::optional<MetricTime> fade_up;
- boost::optional<MetricTime> fade_down;
+ boost::optional<Time> fade_up;
+ boost::optional<Time> fade_down;
std::list<Line> lines;