X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fdvb%2Feit.cpp;h=fa776b94984c15bc20139b1fef4d96db3aeb785c;hb=cd176a16cb54350617ea202de983e8d643978971;hp=b78b2279fdace13bebc929c1f2069b3c2a197d6f;hpb=8d8294b4b354436adde202604fffb55c181d686c;p=vuplus_dvbapp diff --git a/lib/dvb/eit.cpp b/lib/dvb/eit.cpp index b78b227..fa776b9 100644 --- a/lib/dvb/eit.cpp +++ b/lib/dvb/eit.cpp @@ -14,10 +14,11 @@ void eDVBServiceEITHandler::EITready(int error) for (std::vector::const_iterator i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i) { - for (EventConstIterator ev = (*i)->getEvents()->begin(); ev != (*i)->getEvents()->end(); ++ev) + const EventInformationSection *eit = *i; + for (EventConstIterator ev = eit->getEvents()->begin(); ev != eit->getEvents()->end(); ++ev) { ePtr evt = new eServiceEvent(); - evt->parseFrom(*ev); + evt->parseFrom(*ev,(eit->getTransportStreamId()<<16)|eit->getOriginalNetworkId()); if (!a) m_event_now = evt; else @@ -31,6 +32,15 @@ void eDVBServiceEITHandler::EITready(int error) m_eit_changed(); } +void eDVBServiceEITHandler::inject(ePtr &event, int nownext) +{ + if (nownext) + m_event_next = event; + else + m_event_now = event; + m_eit_changed(); +} + eDVBServiceEITHandler::eDVBServiceEITHandler() { CONNECT(m_EIT.tableReady, eDVBServiceEITHandler::EITready); @@ -41,6 +51,11 @@ void eDVBServiceEITHandler::start(iDVBDemux *demux, int sid) m_EIT.begin(eApp, eDVBEITSpec(sid), demux); } +void eDVBServiceEITHandler::startOther(iDVBDemux *demux, int sid) +{ + m_EIT.begin(eApp, eDVBEITSpecOther(sid), demux); +} + RESULT eDVBServiceEITHandler::getEvent(ePtr &event, int nownext) { event = nownext ? m_event_next : m_event_now;