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 a1bb5b28e2f0f0285aa3c736798de78a3b8af4c4..8ee7fb3918ce102d00942bde9d7408311cc548af 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/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/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>
 #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>
 %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/iservice.h>
 %include <lib/service/service.h>
-%include <lib/service/event.h>
 
 // TODO: embed these...
 %immutable eConsoleAppContainer::appClosed;
 
 // TODO: embed these...
 %immutable eConsoleAppContainer::appClosed;
index 4dda57796609ab09667ddbf57701ffdd2072f2e5..aa8482a002aca383e9abdc140ca2a77df0a3adf3 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;
 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())
                {
        {
                switch ((*desc)->getTag())
                {
@@ -270,4 +270,9 @@ RESULT eServiceEvent::getLinkageService(eServiceReference &service, eServiceRefe
        return -1;
 }
 
        return -1;
 }
 
+void setServiceEventLanguage(const std::string language)
+{
+       eServiceEvent::setEPGLanguage(language);
+}
+
 DEFINE_REF(eDebugClass);
 DEFINE_REF(eDebugClass);
index d1e1d08bb46eeca4436c2f7cc25274300f86d00e..5d81d8cf38bf797b33d8fe0726b9a4bc385add59 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);
 #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 );
        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; }
        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;
 };
        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);
 
 #ifndef SWIG
 SWIG_IGNORE(eDebugClass);
index 96cd792d7b1546c03ba17381e6585e97face1428..015ef8794ea0a6aa1b4a2184e549e50ae6059dd9 100644 (file)
@@ -224,7 +224,7 @@ typedef long long pts_t;
           
           Hide the result only if there is another way to check for failure! */
           
           
           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
 
 SWIG_IGNORE(iStaticServiceInformation);
 class iStaticServiceInformation: public iObject
index 7d87a9cd63daef035733229955b0d6f366f39f6b..0eab8a65ac72df8ebdff30d8e4d45df30217d214 100644 (file)
--- a/mytest.py
+++ b/mytest.py
@@ -1,6 +1,6 @@
 from Tools import RedirectOutput
 from enigma import runMainloop, eDVBDB, eTimer, quitMainloop, eDVBVolumecontrol, \
 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
 from tools import *
 
 from Components.Language import language