service: add sort of servicelist including all required layers
[enigma2.git] / lib / service / event.cpp
index 7ea165606ba0165ec8c1b9e2e4b22b5701b58e60..96cc042bf18a5540c2c6c1eca6db2213e8ff041c 100644 (file)
@@ -1,15 +1,15 @@
 #include <lib/service/event.h>
-#include <lib/dvb_si/eit.h>
-#include <lib/dvb_si/short_event_descriptor.h>
-#include <lib/dvb_si/descriptor_tag.h>
+#include <lib/base/estring.h>
+#include <dvbsi++/event_information_section.h>
+#include <dvbsi++/short_event_descriptor.h>
+#include <dvbsi++/descriptor_tag.h>
 
 DEFINE_REF(eServiceEvent);
 
 RESULT eServiceEvent::parseFrom(Event *evt)
 {
        m_begin = 0;    // ich bin FAUL
-       m_duration = evt->getDuration();
-       
+       m_duration = (evt->getDuration() & 0xFF) + ((evt->getDuration() >> 8) & 0xFF) * 60 + ((evt->getDuration() >> 16) & 0xFF) * 24 * 60;
        
        for (DescriptorConstIterator desc = evt->getDescriptors()->begin(); desc != evt->getDescriptors()->end(); ++desc)
        {
@@ -18,10 +18,13 @@ RESULT eServiceEvent::parseFrom(Event *evt)
                case SHORT_EVENT_DESCRIPTOR:
                {
                        const ShortEventDescriptor *sed = (ShortEventDescriptor*)*desc;
-                       m_event_name = sed->getEventName();
-                       m_description = sed->getText();
+                       m_event_name = convertDVBUTF8(sed->getEventName());
+                       m_description = convertDVBUTF8(sed->getText());
                        break;
                }
                }
        }
+       return 0;
 }
+
+DEFINE_REF(eDebugClass);