diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-05-21 21:24:20 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-05-21 21:24:20 +0000 |
| commit | a262e80aef98d57cc90a397629671124f4fa08f2 (patch) | |
| tree | 8108387d4391ea3394b67cdb389919488b504ea3 /lib/dvb/teletext.h | |
| parent | 9ab57f61d38be4f40a88948073255e5436084d60 (diff) | |
| download | enigma2-a262e80aef98d57cc90a397629671124f4fa08f2.tar.gz enigma2-a262e80aef98d57cc90a397629671124f4fa08f2.zip | |
some more work on teletext single-page parsing
Diffstat (limited to 'lib/dvb/teletext.h')
| -rw-r--r-- | lib/dvb/teletext.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/dvb/teletext.h b/lib/dvb/teletext.h index 9fa1e2ea..5b4a9703 100644 --- a/lib/dvb/teletext.h +++ b/lib/dvb/teletext.h @@ -4,19 +4,58 @@ #include <lib/base/object.h> #include <lib/dvb/idvb.h> #include <lib/dvb/pesparse.h> +#include <lib/gdi/gpixmap.h> + +struct eDVBTeletextSubtitlePageElement +{ + gRGB m_color; + std::string m_text; + eDVBTeletextSubtitlePageElement(const gRGB &color, const std::string &text) + : m_color(color), m_text(text) + { + } +}; + +struct eDVBTeletextSubtitlePage +{ + pts_t m_pts; + int m_timeout; /* in pts */ + std::vector<eDVBTeletextSubtitlePageElement> m_elements; + + void clear() { m_elements.clear(); } +}; class eDVBTeletextParser: public iObject, public ePESParser, public Object { DECLARE_REF(eDVBTeletextParser); public: eDVBTeletextParser(iDVBDemux *demux); + virtual ~eDVBTeletextParser(); int start(int pid); + void setPage(int page); private: void processPESPacket(__u8 *pkt, int len); ePtr<iDVBPESReader> m_pes_reader; ePtr<eConnection> m_read_connection; + + eDVBTeletextSubtitlePage m_subtitle_page; + + int m_M, m_Y, m_X, m_S1, m_S2, m_S3, m_S4, m_C; + + int m_page_M, m_page_X, m_page_open; + + void handlePageStart(); + void handleLine(unsigned char *line, int len); + void handlePageEnd(); + + std::string m_subtitle_text; + int m_subtitle_color; + + void addSubtitleString(int color, const std::string &string); + + void sendSubtitlePage(); }; #endif |
