X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/97b016f395168b9d1d3290d0c4998b3ad8a1b7ce..d37c356fa54be2fd93a92566c686a468a741cd0f:/lib/dvb/teletext.h diff --git a/lib/dvb/teletext.h b/lib/dvb/teletext.h index a07c6aea..7c62afb9 100644 --- a/lib/dvb/teletext.h +++ b/lib/dvb/teletext.h @@ -13,8 +13,11 @@ struct eDVBTeletextSubtitlePageElement gRGB m_color; std::string m_text; eRect m_area; - eDVBTeletextSubtitlePageElement(const gRGB &color, const std::string &text) - : m_color(color), m_text(text) + + int m_source_line; + + eDVBTeletextSubtitlePageElement(const gRGB &color, const std::string &text, int source_line) + : m_color(color), m_text(text), m_source_line(source_line) { } }; @@ -26,6 +29,7 @@ struct eDVBTeletextSubtitlePage int m_timeout; /* in pts */ std::vector m_elements; + void clearLine(int line) { for (unsigned int i = 0; i < m_elements.size(); ) if (m_elements[i].m_source_line == line) m_elements.erase(m_elements.begin() + i); else ++i; } void clear() { m_elements.clear(); } }; @@ -50,15 +54,18 @@ private: eDVBTeletextSubtitlePage m_subtitle_page; int m_C, m_Y, m_pid, m_page_M, m_page_X, m_page_open, m_double_height, m_box_open; - + int m_X28_0_valid, m_X28_t1, m_X28_t2; + int m_M29_0_valid, m_M29_t1, m_M29_t2; + void handlePageStart(); void handleLine(unsigned char *line, int len); void handlePageEnd(int have_pts, const pts_t &pts); std::string m_subtitle_text; int m_subtitle_color; + int m_current_source_line; - void addSubtitleString(int color, std::string string); + void addSubtitleString(int color, std::string string, int source_line); void sendSubtitlePage();