setPage(-1);
if (demux->createPESReader(eApp, m_pes_reader))
- eDebug("failed to create PES reader!");
+ eDebug("failed to create teletext subtitle PES reader!");
else
m_pes_reader->connectRead(slot(*this, &eDVBTeletextParser::processData), m_read_connection);
}
if (data_unit_length != 44)
{
- eDebug("illegal data unit length %d", data_unit_length);
+ /* eDebug("illegal data unit length %d", data_unit_length); */
break;
}
/* ignore other attributes */
} else
{
- eDebugNoNewLine("%c", b);
+ //eDebugNoNewLine("%c", b);
/* no more than one whitespace, only printable chars */
if (((!last_was_white) || (b != ' ')) && (b >= 0x20))
{
}
}
}
- eDebug("");
+ //eDebug("");
addSubtitleString(color, text);
}
void eDVBTeletextParser::handlePageEnd(int have_pts, const pts_t &pts)
{
- eDebug("handle page end");
+// eDebug("handle page end");
addSubtitleString(-2, ""); /* end last line */
m_subtitle_page.m_have_pts = have_pts;
m_subtitle_page.m_pts = pts;
m_subtitle_page.m_timeout = 90000 * 20; /* 20s */
- sendSubtitlePage(); /* send assembled subtitle page to display */
+ if (m_page_number != -1)
+ sendSubtitlePage(); /* send assembled subtitle page to display */
}
void eDVBTeletextParser::setPage(int page)
{
+ if (page > 0)
+ eDebug("enable teletext subtitle page %d", page);
+ else
+ eDebug("disable teletext subtitles");
+ m_page_number = page;
m_page_M = (page >> 8) & 7; /* magazine to look for */
m_page_X = page & 0xFF; /* page number */
}
void eDVBTeletextParser::sendSubtitlePage()
{
- eDebug("subtitle page:");
- for (unsigned int i = 0; i < m_subtitle_page.m_elements.size(); ++i)
- eDebug("%s", m_subtitle_page.m_elements[i].m_text.c_str());
+// eDebug("subtitle page:");
+ //for (unsigned int i = 0; i < m_subtitle_page.m_elements.size(); ++i)
+ // eDebug("%s", m_subtitle_page.m_elements[i].m_text.c_str());
m_new_subtitle_page(m_subtitle_page);
}