*/
+
#ifndef DCPOMATIC_CONTENT_TEXT_H
#define DCPOMATIC_CONTENT_TEXT_H
+
+#include "bitmap_text.h"
#include "dcpomatic_time.h"
#include "rect.h"
-#include "types.h"
-#include "bitmap_text.h"
+#include "string_text.h"
#include <dcp/subtitle_string.h>
-#include <list>
+#include <vector>
+
class Image;
+
class ContentText
{
public:
- explicit ContentText (ContentTime f, TextType t)
+ explicit ContentText (dcpomatic::ContentTime f)
: _from (f)
- , _type (t)
{}
- ContentTime from () const {
+ dcpomatic::ContentTime from () const {
return _from;
}
- TextType type () const {
- return _type;
- }
-
private:
- ContentTime _from;
- TextType _type;
+ dcpomatic::ContentTime _from;
};
+
class ContentBitmapText : public ContentText
{
public:
- ContentBitmapText (ContentTime f, TextType type, boost::shared_ptr<Image> im, dcpomatic::Rect<double> r)
- : ContentText (f, type)
- , sub (im, r)
+ ContentBitmapText (dcpomatic::ContentTime from)
+ : ContentText(from)
+ {}
+
+ ContentBitmapText (dcpomatic::ContentTime f, std::shared_ptr<const Image> im, dcpomatic::Rect<double> r)
+ : ContentText (f)
+ , subs{ {im, r} }
{}
- /* Our text, with its rectangle unmodified by any offsets or scales that the content specifies */
- BitmapText sub;
+ /* Our texts, with their rectangles unmodified by any offsets or scales that the content specifies */
+ std::vector<BitmapText> subs;
};
+
/** A text caption. We store the time period separately (as well as in the dcp::SubtitleStrings)
* as the dcp::SubtitleString timings are sometimes quite heavily quantised and this causes problems
* when we want to compare the quantised periods to the unquantised ones.
class ContentStringText : public ContentText
{
public:
- ContentStringText (ContentTime f, TextType type, std::list<dcp::SubtitleString> s)
- : ContentText (f, type)
+ ContentStringText (dcpomatic::ContentTime f, std::vector<StringText> s)
+ : ContentText (f)
, subs (s)
{}
- std::list<dcp::SubtitleString> subs;
+ std::vector<StringText> subs;
};
+
#endif