From e677ac4a7bf81391877c909a703e5918ce4a511b Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Sun, 13 Feb 2005 00:09:19 +0000 Subject: - started work on EIT - added "pcore", the navigation core for python --- lib/dvb/eit.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 lib/dvb/eit.cpp (limited to 'lib/dvb/eit.cpp') diff --git a/lib/dvb/eit.cpp b/lib/dvb/eit.cpp new file mode 100644 index 00000000..2462d333 --- /dev/null +++ b/lib/dvb/eit.cpp @@ -0,0 +1,50 @@ +#include +#include +#include +#include + +void eDVBServiceEITHandler::EITready(int error) +{ + if (!error) + { + ePtr > ptr; + if (!m_EIT.getCurrent(ptr)) + { + int a = 0; + for (EventInformationTableConstIterator i = ptr->getSections().begin(); + i != ptr->getSections().end(); ++i) + { + for (EventConstIterator ev = (*i)->getEvents()->begin(); ev != (*i)->getEvents()->end(); ++ev) + { + ePtr evt = new eServiceEvent(); + evt->parseFrom(*ev); + if (!a) + m_event_now = evt; + else + m_event_next = evt; + ++a; + } + } + } + } + + m_eit_changed(); +} + +eDVBServiceEITHandler::eDVBServiceEITHandler() +{ + CONNECT(m_EIT.tableReady, eDVBServiceEITHandler::EITready); +} + +void eDVBServiceEITHandler::start(iDVBDemux *demux, int sid) +{ + m_EIT.begin(eApp, eDVBEITSpec(sid), demux); +} + +RESULT eDVBServiceEITHandler::getEvent(ePtr &event, int nownext) +{ + event = nownext ? m_event_next : m_event_now; + if (!event) + return -1; + return 0; +} -- cgit v1.2.3