aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/python/enigma_python.i4
-rw-r--r--lib/service/event.cpp7
-rw-r--r--lib/service/event.h11
-rw-r--r--lib/service/iservice.h2
-rw-r--r--mytest.py2
5 files changed, 19 insertions, 7 deletions
diff --git a/lib/python/enigma_python.i b/lib/python/enigma_python.i
index a1bb5b28..8ee7fb39 100644
--- a/lib/python/enigma_python.i
+++ b/lib/python/enigma_python.i
@@ -43,9 +43,9 @@ is usually caused by not marking PSignals as immutable.
#include <lib/base/nconfig.h>
#include <lib/base/message.h>
#include <lib/driver/rc.h>
+#include <lib/service/event.h>
#include <lib/service/iservice.h>
#include <lib/service/service.h>
-#include <lib/service/event.h>
#include <lib/service/servicedvb.h>
#include <lib/gdi/fb.h>
#include <lib/gdi/font.h>
@@ -134,9 +134,9 @@ typedef long time_t;
%immutable eSocketNotifier::activated;
%include <lib/base/ebase.h>
%include <lib/base/smartptr.h>
+%include <lib/service/event.h>
%include <lib/service/iservice.h>
%include <lib/service/service.h>
-%include <lib/service/event.h>
// TODO: embed these...
%immutable eConsoleAppContainer::appClosed;
diff --git a/lib/service/event.cpp b/lib/service/event.cpp
index 4dda5779..aa8482a0 100644
--- a/lib/service/event.cpp
+++ b/lib/service/event.cpp
@@ -72,7 +72,7 @@ std::string ISOtbl[MAX_LANG][2] =
bool eServiceEvent::loadLanguage(Event *evt, std::string lang, int tsidonid)
{
bool retval=0;
- for (DescriptorConstIterator desc = evt->getDescriptors()->begin(); desc != evt->getDescriptors()->end(); ++desc)
+ for (DescriptorConstIterator desc = evt->getDescriptors()->begin(); desc != evt->getDescriptors()->end() && !retval; ++desc)
{
switch ((*desc)->getTag())
{
@@ -270,4 +270,9 @@ RESULT eServiceEvent::getLinkageService(eServiceReference &service, eServiceRefe
return -1;
}
+void setServiceEventLanguage(const std::string language)
+{
+ eServiceEvent::setEPGLanguage(language);
+}
+
DEFINE_REF(eDebugClass);
diff --git a/lib/service/event.h b/lib/service/event.h
index d1e1d08b..5d81d8cf 100644
--- a/lib/service/event.h
+++ b/lib/service/event.h
@@ -47,8 +47,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; }
@@ -60,7 +60,14 @@ 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>, eServiceEventPtr);
+SWIG_TEMPLATE_TYPEDEF(ePtr<eServiceEvent>, eServiceEvent);
+SWIG_EXTEND(ePtr<eServiceEvent>,
+ static void setEPGLanguage( const std::string language )
+ {
+ extern setServiceEventLanguage(const std::string language);
+ setServiceEventLanguage(language);
+ }
+);
#ifndef SWIG
SWIG_IGNORE(eDebugClass);
diff --git a/lib/service/iservice.h b/lib/service/iservice.h
index 96cd792d..015ef879 100644
--- a/lib/service/iservice.h
+++ b/lib/service/iservice.h
@@ -224,7 +224,7 @@ typedef long long pts_t;
Hide the result only if there is another way to check for failure! */
-SWIG_TEMPLATE_TYPEDEF(ePtr<eServiceEvent>, eServiceEventPtr);
+class eServiceEvent;
SWIG_IGNORE(iStaticServiceInformation);
class iStaticServiceInformation: public iObject
diff --git a/mytest.py b/mytest.py
index 7d87a9cd..0eab8a65 100644
--- a/mytest.py
+++ b/mytest.py
@@ -1,6 +1,6 @@
from Tools import RedirectOutput
from enigma import runMainloop, eDVBDB, eTimer, quitMainloop, eDVBVolumecontrol, \
- getDesktop, ePythonConfigQuery, eAVSwitch, eWindow
+ getDesktop, ePythonConfigQuery, eAVSwitch, eWindow, eServiceEvent
from tools import *
from Components.Language import language