From 855949a917ed8cf65397adc49872c99bdb2123c2 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Sat, 13 Jan 2007 19:45:52 +0000 Subject: [PATCH] fix non working use of configured system language for epg language --- lib/python/enigma_python.i | 4 ++-- lib/service/event.cpp | 7 ++++++- lib/service/event.h | 11 +++++++++-- lib/service/iservice.h | 2 +- mytest.py | 2 +- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/lib/python/enigma_python.i b/lib/python/enigma_python.i index a1bb5b2..8ee7fb3 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 #include #include +#include #include #include -#include #include #include #include @@ -134,9 +134,9 @@ typedef long time_t; %immutable eSocketNotifier::activated; %include %include +%include %include %include -%include // TODO: embed these... %immutable eConsoleAppContainer::appClosed; diff --git a/lib/service/event.cpp b/lib/service/event.cpp index 4dda577..aa8482a 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 d1e1d08..5d81d8c 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, eServiceEventPtr); +SWIG_TEMPLATE_TYPEDEF(ePtr, eServiceEvent); +SWIG_EXTEND(ePtr, + 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 96cd792..015ef87 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, eServiceEventPtr); +class eServiceEvent; SWIG_IGNORE(iStaticServiceInformation); class iStaticServiceInformation: public iObject diff --git a/mytest.py b/mytest.py index 7d87a9c..0eab8a6 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 -- 2.7.4