more pid cache stuff
[enigma2.git] / lib / service / event.cpp
1 #include <lib/service/event.h>
2 #include <lib/dvb_si/eit.h>
3 #include <lib/dvb_si/short_event_descriptor.h>
4 #include <lib/dvb_si/descriptor_tag.h>
5
6 DEFINE_REF(eServiceEvent);
7
8 RESULT eServiceEvent::parseFrom(Event *evt)
9 {
10         m_begin = 0;    // ich bin FAUL
11         m_duration = (evt->getDuration() & 0xFF) + ((evt->getDuration() >> 8) & 0xFF) * 60 + ((evt->getDuration() >> 16) & 0xFF) * 24 * 60;
12         
13         for (DescriptorConstIterator desc = evt->getDescriptors()->begin(); desc != evt->getDescriptors()->end(); ++desc)
14         {
15                 switch ((*desc)->getTag())
16                 {
17                 case SHORT_EVENT_DESCRIPTOR:
18                 {
19                         const ShortEventDescriptor *sed = (ShortEventDescriptor*)*desc;
20                         m_event_name = sed->getEventName();
21                         m_description = sed->getText();
22                         break;
23                 }
24                 }
25         }
26         return 0;
27 }
28
29 DEFINE_REF(eDebugClass);