aboutsummaryrefslogtreecommitdiff
path: root/lib/service/event.cpp
blob: 58079da077d4b7c75d929519359187c577b4f10b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#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>

DEFINE_REF(eServiceEvent);

RESULT eServiceEvent::parseFrom(Event *evt)
{
	m_begin = 0; 	// ich bin FAUL
	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)
	{
		switch ((*desc)->getTag())
		{
		case SHORT_EVENT_DESCRIPTOR:
		{
			const ShortEventDescriptor *sed = (ShortEventDescriptor*)*desc;
			m_event_name = sed->getEventName();
			m_description = sed->getText();
			break;
		}
		}
	}
	return 0;
}

DEFINE_REF(eDebugClass);