diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-02-13 00:09:19 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-02-13 00:09:19 +0000 |
| commit | e677ac4a7bf81391877c909a703e5918ce4a511b (patch) | |
| tree | 4944b7cf6c8b6f1715d642fc0dd2f2b3e2b849d5 /lib/dvb/eit.cpp | |
| parent | d7d291938c45893e28715fb12ae5b83d334084e9 (diff) | |
| download | enigma2-e677ac4a7bf81391877c909a703e5918ce4a511b.tar.gz enigma2-e677ac4a7bf81391877c909a703e5918ce4a511b.zip | |
- started work on EIT
- added "pcore", the navigation core for python
Diffstat (limited to 'lib/dvb/eit.cpp')
| -rw-r--r-- | lib/dvb/eit.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
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 <lib/dvb/eit.h> +#include <lib/dvb/specs.h> +#include <lib/base/eerror.h> +#include <lib/service/event.h> + +void eDVBServiceEITHandler::EITready(int error) +{ + if (!error) + { + ePtr<eTable<EventInformationTable> > 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<eServiceEvent> 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<eServiceEvent> &event, int nownext) +{ + event = nownext ? m_event_next : m_event_now; + if (!event) + return -1; + return 0; +} |
