285a4ae3ee0aadafb6416c459f50f7f440c0f6d8
[openblackhole/openblackhole-enigma2.git] / lib / service / event.h
1 #ifndef __lib_service_event_h
2 #define __lib_service_event_h
3
4 #ifndef SWIG
5 #include <time.h>
6 #include <lib/base/object.h>
7 #include <lib/service/iservice.h>
8 #include <list>
9 #include <string>
10 class Event;
11 #endif
12
13 struct eComponentData
14 {
15 DECLARE_REF(eComponentData);
16 #ifndef SWIG
17         uint8_t m_streamContent;
18         uint8_t m_componentType;
19         uint8_t m_componentTag;
20         std::string m_iso639LanguageCode;
21         std::string m_text;
22 #endif
23         int getStreamContent(void) const { return m_streamContent; }
24         int getComponentType(void) const { return m_componentType; }
25         int getComponentTag(void) const { return m_componentTag; }
26         std::string getIso639LanguageCode(void) const { return m_iso639LanguageCode; }
27         std::string getText(void) const { return m_text; }
28 };
29
30 TEMPLATE_TYPEDEF(ePtr<eComponentData>, eComponentDataPtr);
31
32 class eServiceEvent: public iObject
33 {
34         DECLARE_REF(eServiceEvent);
35         bool loadLanguage(Event *event, std::string lang, int tsidonid);
36         std::list<eComponentData> m_component_data;
37         std::list<eServiceReference> m_linkage_services;
38         time_t m_begin;
39         int m_duration;
40         int m_event_id;
41         std::string m_event_name, m_short_description, m_extended_description;
42         static std::string m_language;
43         // .. additional info
44 public:
45 #ifndef SWIG
46         RESULT parseFrom(Event *evt, int tsidonid=0);
47 #endif
48         static void setEPGLanguage( const std::string language );
49         time_t getBeginTime() const { return m_begin; }
50         int getDuration() const { return m_duration; }
51         int getEventId() const { return m_event_id; }
52         std::string getEventName() const { return m_event_name; }
53         std::string getShortDescription() const { return m_short_description; }
54         std::string getExtendedDescription() const { return m_extended_description; }
55         std::string getBeginTimeString() const;
56         SWIG_VOID(RESULT) getComponentData(ePtr<eComponentData> &SWIG_OUTPUT, int tagnum) const;
57         int getNumOfLinkageServices() const { return m_linkage_services.size(); }
58         SWIG_VOID(RESULT) getLinkageService(eServiceReference &SWIG_OUTPUT, eServiceReference &parent, int num) const;
59 };
60
61 TEMPLATE_TYPEDEF(ePtr<eServiceEvent>, eServiceEventPtr);
62 #ifndef SWIG
63
64 class eDebugClass: public iObject
65 {
66         DECLARE_REF(eDebugClass);
67 public:
68         int x;
69         static void getDebug(ePtr<eDebugClass> &ptr, int x) { ptr = new eDebugClass(x); }
70         eDebugClass(int i) { printf("build debug class %d\n", i); x = i; }
71         ~eDebugClass() { printf("remove debug class %d\n", x); }
72 };
73
74 // TEMPLATE_TYPEDEF(ePtr<eDebugClass>, eDebugClassPtr);
75 #endif
76
77 #endif