fix non working use of configured system language for epg language
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Sat, 13 Jan 2007 19:45:52 +0000 (19:45 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Sat, 13 Jan 2007 19:45:52 +0000 (19:45 +0000)
lib/python/enigma_python.i
lib/service/event.cpp
lib/service/event.h
lib/service/iservice.h
mytest.py

index a1bb5b2..8ee7fb3 100644 (file)
@@ -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;
index 4dda577..aa8482a 100644 (file)
@@ -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);
index d1e1d08..5d81d8c 100644 (file)
@@ -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);
index 96cd792..015ef87 100644 (file)
@@ -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
index 7d87a9c..0eab8a6 100644 (file)
--- 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