small code cleanup, fix memleaks
[enigma2.git] / lib / gui / esubtitle.h
index d7287776f20204b4f696c4c996e5d030ffb2b3c5..cdad7286cab7cd8e7ce3b7e29a4b4361b272440a 100644 (file)
@@ -12,26 +12,32 @@ struct ePangoSubtitlePageElement
        std::string m_pango_line;
        eRect m_area;
        ePangoSubtitlePageElement(const gRGB &color, const std::string &text)
-               : m_color(color), m_pango_line(text), m_have_color(true)
+               : m_color(color), m_have_color(true), m_pango_line(text)
        {
        }
        ePangoSubtitlePageElement(const std::string &text)
-               : m_pango_line(text), m_have_color(false)
+               : m_have_color(false), m_pango_line(text)
        {
        }
 };
 
 struct ePangoSubtitlePage
 {
-       pts_t show_pts;
+       pts_t m_show_pts;
        int m_timeout; /* in milliseconds */
        std::vector<ePangoSubtitlePageElement> m_elements;
        void clear() { m_elements.clear(); }
 };
 
+struct eVobSubtitlePage
+{
+       pts_t m_show_pts;
+       int m_timeout; /* in milliseconds */
+       ePtr<gPixmap> m_pixmap;
+};
+
 class eDVBTeletextSubtitlePage;
-class eDVBPangoSubtitlePage;
-class ePangoSubtitlePage;
+class eDVBSubtitlePage;
 
 class eSubtitleWidget: public eWidget, public Object
 {
@@ -42,7 +48,7 @@ public:
        void setPage(const eDVBSubtitlePage &p);
        void setPage(const ePangoSubtitlePage &p);
        void clearPage();
-       void setPixmap(ePtr<gPixmap> &pixmap, gRegion changed);
+       void setPixmap(ePtr<gPixmap> &pixmap, gRegion changed, eRect dest = eRect(0, 0, 720, 576));
 
        typedef enum { Subtitle_TTX, Subtitle_Regular, Subtitle_Bold, Subtitle_Italic, Subtitle_MAX } subfont_t;
        struct eSubtitleStyle
@@ -75,6 +81,7 @@ private:
        static eSubtitleStyle subtitleStyles[Subtitle_MAX];
 
        ePtr<gPixmap> m_pixmap;  // pixmap to paint on next evtPaint
+       eRect m_pixmap_dest;
 };
 
 #endif