fix getLinkageService
[enigma2.git] / lib / service / event.h
index 25b9d0b7df4e463ba7a51c942c7c3dbc080ae381..f315aca8cd608535e6bfb0980a2ecc87ab9aed87 100644 (file)
@@ -3,13 +3,15 @@
 
 #ifndef SWIG
 #include <time.h>
-#include <lib/base/object.h>
-#include <lib/service/iservice.h>
 #include <list>
 #include <string>
 class Event;
 #endif
 
+#include <lib/base/object.h>
+#include <lib/service/iservice.h>
+
+SWIG_IGNORE(eComponentData);
 struct eComponentData
 {
 DECLARE_REF(eComponentData);
@@ -26,9 +28,11 @@ DECLARE_REF(eComponentData);
        std::string getIso639LanguageCode(void) const { return m_iso639LanguageCode; }
        std::string getText(void) const { return m_text; }
 };
+SWIG_TEMPLATE_TYPEDEF(ePtr<eComponentData>, eComponentDataPtr);
 
-TEMPLATE_TYPEDEF(ePtr<eComponentData>, eComponentDataPtr);
+SWIG_ALLOW_OUTPUT_SIMPLE(eServiceReference);  // needed for SWIG_OUTPUT in eServiceEvent::getLinkageService
 
+SWIG_IGNORE(eServiceEvent);
 class eServiceEvent: public iObject
 {
        DECLARE_REF(eServiceEvent);
@@ -45,8 +49,8 @@ public:
 #ifndef SWIG
        RESULT parseFrom(Event *evt, int tsidonid=0);
        RESULT parseFrom(const std::string filename, int tsidonid=0);
-#endif
        static void setEPGLanguage( const std::string language );
+#endif
        time_t getBeginTime() const { return m_begin; }
        int getDuration() const { return m_duration; }
        int getEventId() const { return m_event_id; }
@@ -58,10 +62,17 @@ public:
        int getNumOfLinkageServices() const { return m_linkage_services.size(); }
        SWIG_VOID(RESULT) getLinkageService(eServiceReference &SWIG_OUTPUT, eServiceReference &parent, int num) const;
 };
+SWIG_TEMPLATE_TYPEDEF(ePtr<eServiceEvent>, eServiceEvent);
+SWIG_EXTEND(ePtr<eServiceEvent>,
+       static void setEPGLanguage( const std::string language )
+       {
+               extern void setServiceEventLanguage(const std::string language);
+               setServiceEventLanguage(language);
+       }
+);
 
-TEMPLATE_TYPEDEF(ePtr<eServiceEvent>, eServiceEventPtr);
 #ifndef SWIG
-
+SWIG_IGNORE(eDebugClass);
 class eDebugClass: public iObject
 {
        DECLARE_REF(eDebugClass);
@@ -71,8 +82,7 @@ public:
        eDebugClass(int i) { printf("build debug class %d\n", i); x = i; }
        ~eDebugClass() { printf("remove debug class %d\n", x); }
 };
-
-// TEMPLATE_TYPEDEF(ePtr<eDebugClass>, eDebugClassPtr);
+SWIG_TEMPLATE_TYPEDEF(ePtr<eDebugClass>, eDebugClassPtr);
 #endif
 
 #endif