aboutsummaryrefslogtreecommitdiff
path: root/lib/gui/esubtitle.h
diff options
context:
space:
mode:
authorAndreas Frisch <andreas.frisch@multimedia-labs.de>2008-10-20 11:52:18 +0000
committerAndreas Frisch <andreas.frisch@multimedia-labs.de>2008-10-20 11:52:18 +0000
commit0e7fc97cfaaecf1b7fc93a73157a6a380e9058f4 (patch)
treea00c14cb29db615f7c4e53d653707be2f73fb9c7 /lib/gui/esubtitle.h
parent585d209a9fc6d0a7a31ebd4deeca527d093fea1c (diff)
downloadenigma2-0e7fc97cfaaecf1b7fc93a73157a6a380e9058f4.tar.gz
enigma2-0e7fc97cfaaecf1b7fc93a73157a6a380e9058f4.zip
hide subtitles after actual duration timeout, unescape entities and simulate bold and italic
Diffstat (limited to 'lib/gui/esubtitle.h')
-rw-r--r--lib/gui/esubtitle.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/gui/esubtitle.h b/lib/gui/esubtitle.h
index 15542773..b81faf79 100644
--- a/lib/gui/esubtitle.h
+++ b/lib/gui/esubtitle.h
@@ -5,7 +5,29 @@
#include <lib/dvb/teletext.h>
#include <lib/dvb/subtitle.h>
+struct ePangoSubtitlePageElement
+{
+ gRGB m_color;
+ std::string m_pango_line;
+ eRect m_area;
+ ePangoSubtitlePageElement(const gRGB &color, const std::string &text)
+ : m_color(color), m_pango_line(text)
+ {
+ }
+};
+
+struct ePangoSubtitlePage
+{
+ pts_t m_pts;
+ int m_have_pts;
+ int m_timeout; /* in milliseconds */
+ std::vector<ePangoSubtitlePageElement> m_elements;
+ void clear() { m_elements.clear(); }
+};
+
class eDVBTeletextSubtitlePage;
+class eDVBPangoSubtitlePage;
+class ePangoSubtitlePage;
class eSubtitleWidget: public eWidget, public Object
{
@@ -14,6 +36,7 @@ public:
void setPage(const eDVBTeletextSubtitlePage &p);
void setPage(const eDVBSubtitlePage &p);
+ void setPage(const ePangoSubtitlePage &p);
void clearPage();
void setPixmap(ePtr<gPixmap> &pixmap, gRegion changed);
@@ -27,11 +50,15 @@ private:
int m_dvb_page_ok;
eDVBSubtitlePage m_dvb_page;
+ int m_pango_page_ok;
+ ePangoSubtitlePage m_pango_page;
+
eTimer m_hide_subtitles_timer;
gRegion m_visible_region;
ePtr<gPixmap> m_pixmap; // pixmap to paint on next evtPaint
+ std::string eSubtitleWidget::replace_all(const std::string &in, const std::string &entity, const std::string &symbol);
};
#endif