From 6b924837dedad17ea56ca37075e760828469abcb Mon Sep 17 00:00:00 2001 From: ghost Date: Mon, 11 May 2009 11:42:51 +0200 Subject: show both language codes / languages when two language codes are transmitted for one single pid --- lib/dvb/pmt.cpp | 10 ++++++++-- lib/python/Screens/InfoBarGenerics.py | 14 +++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index 0198c8f7..da45c8eb 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -399,10 +399,16 @@ int eDVBServicePMTHandler::getProgramInfo(struct program &program) case ISO_639_LANGUAGE_DESCRIPTOR: if (!isvideo) { + int cnt=0; const Iso639LanguageList *languages = ((Iso639LanguageDescriptor*)*desc)->getIso639Languages(); /* use last language code */ - for (Iso639LanguageConstIterator i(languages->begin()); i != languages->end(); ++i) - audio.language_code = (*i)->getIso639LanguageCode(); + for (Iso639LanguageConstIterator i(languages->begin()); i != languages->end(); ++i, ++cnt) + { + if (cnt == 0) + audio.language_code = (*i)->getIso639LanguageCode(); + else + audio.language_code += "/" + (*i)->getIso639LanguageCode(); + } } break; case STREAM_IDENTIFIER_DESCRIPTOR: diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index c1618184..9adaa6db 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -1631,12 +1631,20 @@ class InfoBarAudioSelection: idx = 0 while idx < n: + cnt = 0 i = audio.getTrackInfo(idx) - language = i.getLanguage() + languages = i.getLanguage().split('/') description = i.getDescription() + language = "" - if LanguageCodes.has_key(language): - language = LanguageCodes[language][0] + for lang in languages: + if cnt: + language += ' / ' + if LanguageCodes.has_key(lang): + language += LanguageCodes[lang][0] + else: + language += lang + cnt += 1 if len(description): description += " (" + language + ")" -- cgit v1.2.3 From 92554c8325411acd3acaec7c15be420f180907c4 Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Mon, 11 May 2009 13:08:52 +0200 Subject: cyclic refresh of duration (fixes length of streams being reported as 0:00) --- lib/python/Components/Converter/ServicePosition.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/python/Components/Converter/ServicePosition.py b/lib/python/Components/Converter/ServicePosition.py index b92af40b..56a6db67 100644 --- a/lib/python/Components/Converter/ServicePosition.py +++ b/lib/python/Components/Converter/ServicePosition.py @@ -21,11 +21,6 @@ class ServicePosition(Converter, Poll, object): self.showHours = 'ShowHours' in args self.showNoSeconds = 'ShowNoSeconds' in args - if self.detailed: - self.poll_interval = 100 - else: - self.poll_interval = 500 - if type == "Length": self.type = self.TYPE_LENGTH elif type == "Position": @@ -37,7 +32,14 @@ class ServicePosition(Converter, Poll, object): else: raise ElementError("type must be {Length|Position|Remaining|Gauge} with optional arguments {Negate|Detailed|ShowHours|ShowNoSeconds} for ServicePosition converter") - self.poll_enabled = self.type != self.TYPE_LENGTH + if self.detailed: + self.poll_interval = 100 + elif self.type == self.TYPE_LENGTH: + self.poll_interval = 2000 + else: + self.poll_interval = 500 + + self.poll_enabled = True def getSeek(self): s = self.source.service -- cgit v1.2.3 From 019762d6cd083eb6d49f3611eb692aad2f9dd506 Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Mon, 11 May 2009 18:38:01 +0200 Subject: correctly return (missing plugin) error message strings to the gui --- lib/service/servicemp3.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp index 79098f2c..5ac413b1 100644 --- a/lib/service/servicemp3.cpp +++ b/lib/service/servicemp3.cpp @@ -702,7 +702,7 @@ int eServiceMP3::getInfo(int w) std::string eServiceMP3::getInfoString(int w) { - if ( !m_stream_tags ) + if ( !m_stream_tags && w < sUser && w > 26 ) return ""; gchar *tag = 0; switch (w) @@ -800,7 +800,6 @@ std::string eServiceMP3::getInfoString(int w) case sTagChannelMode: tag = "channel-mode"; break; - case sUser+12: return m_error_message; default: @@ -1128,6 +1127,7 @@ eDebug("AUDIO STRUCT=%s", g_type); g_free (g_lang); // g_free (g_type); } + m_event((iPlayableService*)this, evUpdatedEventInfo); } case GST_MESSAGE_ELEMENT: { -- cgit v1.2.3 From b4f81157894ee05e23eafa5ff6accbdc280d9cc6 Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Mon, 11 May 2009 22:05:13 +0200 Subject: move http progress downloader class into own tool py --- .../Plugins/SystemPlugins/NFIFlash/downloader.py | 52 +-------------------- lib/python/Tools/Downloader.py | 53 ++++++++++++++++++++++ lib/python/Tools/Makefile.am | 3 +- 3 files changed, 56 insertions(+), 52 deletions(-) create mode 100644 lib/python/Tools/Downloader.py (limited to 'lib') diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py b/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py index c91c8588..6d404cf2 100644 --- a/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py +++ b/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py @@ -16,6 +16,7 @@ from enigma import eConsoleAppContainer, eListbox, gFont, eListboxPythonMultiCon from os import system, remove import re import urllib +from Tools.Downloader import downloadWithProgress from twisted.web import client from twisted.internet import reactor, defer from twisted.python import failure @@ -24,57 +25,6 @@ from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier class UserRequestedCancel(Exception): pass -class HTTPProgressDownloader(client.HTTPDownloader): - def __init__(self, url, outfile, headers=None): - client.HTTPDownloader.__init__(self, url, outfile, headers=headers, agent="Dreambox .NFI Download Plugin") - self.status = None - self.progress_callback = None - self.deferred = defer.Deferred() - - def noPage(self, reason): - if self.status == "304": - print reason.getErrorMessage() - client.HTTPDownloader.page(self, "") - else: - client.HTTPDownloader.noPage(self, reason) - - def gotHeaders(self, headers): - if self.status == "200": - if headers.has_key("content-length"): - self.totalbytes = int(headers["content-length"][0]) - else: - self.totalbytes = 0 - self.currentbytes = 0.0 - return client.HTTPDownloader.gotHeaders(self, headers) - - def pagePart(self, packet): - if self.status == "200": - self.currentbytes += len(packet) - if self.totalbytes and self.progress_callback: - self.progress_callback(self.currentbytes, self.totalbytes) - return client.HTTPDownloader.pagePart(self, packet) - - def pageEnd(self): - return client.HTTPDownloader.pageEnd(self) - -class downloadWithProgress: - def __init__(self, url, outputfile, contextFactory=None, *args, **kwargs): - scheme, host, port, path = client._parse(url) - self.factory = HTTPProgressDownloader(url, outputfile, *args, **kwargs) - self.connection = reactor.connectTCP(host, port, self.factory) - - def start(self): - return self.factory.deferred - - def stop(self): - print "[stop]" - self.connection.disconnect() - #self.factory.deferred.errback(failure.Failure(UserRequestedCancel)) - - def addProgress(self, progress_callback): - print "[addProgress]" - self.factory.progress_callback = progress_callback - class Feedlist(MenuList): def __init__(self, list=[], enableWrapAround = False): MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent) diff --git a/lib/python/Tools/Downloader.py b/lib/python/Tools/Downloader.py new file mode 100644 index 00000000..ffc24c1c --- /dev/null +++ b/lib/python/Tools/Downloader.py @@ -0,0 +1,53 @@ +from twisted.web import client +from twisted.internet import reactor, defer +from twisted.python import failure + +class HTTPProgressDownloader(client.HTTPDownloader): + def __init__(self, url, outfile, headers=None): + client.HTTPDownloader.__init__(self, url, outfile, headers=headers, agent="Dreambox HTTP Downloader") + self.status = None + self.progress_callback = None + self.deferred = defer.Deferred() + + def noPage(self, reason): + if self.status == "304": + print reason.getErrorMessage() + client.HTTPDownloader.page(self, "") + else: + client.HTTPDownloader.noPage(self, reason) + + def gotHeaders(self, headers): + if self.status == "200": + if headers.has_key("content-length"): + self.totalbytes = int(headers["content-length"][0]) + else: + self.totalbytes = 0 + self.currentbytes = 0.0 + return client.HTTPDownloader.gotHeaders(self, headers) + + def pagePart(self, packet): + if self.status == "200": + self.currentbytes += len(packet) + if self.totalbytes and self.progress_callback: + self.progress_callback(self.currentbytes, self.totalbytes) + return client.HTTPDownloader.pagePart(self, packet) + + def pageEnd(self): + return client.HTTPDownloader.pageEnd(self) + +class downloadWithProgress: + def __init__(self, url, outputfile, contextFactory=None, *args, **kwargs): + scheme, host, port, path = client._parse(url) + self.factory = HTTPProgressDownloader(url, outputfile, *args, **kwargs) + self.connection = reactor.connectTCP(host, port, self.factory) + + def start(self): + return self.factory.deferred + + def stop(self): + print "[stop]" + self.connection.disconnect() + + def addProgress(self, progress_callback): + print "[addProgress]" + self.factory.progress_callback = progress_callback diff --git a/lib/python/Tools/Makefile.am b/lib/python/Tools/Makefile.am index fd23bd12..e7904d66 100644 --- a/lib/python/Tools/Makefile.am +++ b/lib/python/Tools/Makefile.am @@ -4,4 +4,5 @@ install_PYTHON = \ FuzzyDate.py XMLTools.py Directories.py NumericalTextInput.py \ KeyBindings.py BoundFunction.py ISO639.py Notifications.py __init__.py \ RedirectOutput.py DreamboxHardware.py Import.py Event.py CList.py \ - LoadPixmap.py Profile.py HardwareInfo.py Transponder.py ASCIItranslit.py + LoadPixmap.py Profile.py HardwareInfo.py Transponder.py ASCIItranslit.py \ + Downloader.py -- cgit v1.2.3 From 75b6f719972578d2bc553db3f30fa8a86c440df7 Mon Sep 17 00:00:00 2001 From: ghost Date: Tue, 12 May 2009 12:52:58 +0200 Subject: epgcache.h/cpp: add viasat (sirus 5°E) EPG MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/dvb/epgcache.cpp | 70 ++++++++++++++++++++++++++++++++++++++++++++++------ lib/dvb/epgcache.h | 8 +++--- 2 files changed, 67 insertions(+), 11 deletions(-) (limited to 'lib') diff --git a/lib/dvb/epgcache.cpp b/lib/dvb/epgcache.cpp index fdcbe0e9..7f2b8369 100644 --- a/lib/dvb/epgcache.cpp +++ b/lib/dvb/epgcache.cpp @@ -303,6 +303,13 @@ void eEPGCache::DVBChannelRunning(iDVBChannel *chan) eDebug("[eEPGCache] couldnt initialize schedule other reader!!"); return; } + + res = demux->createSectionReader( this, data.m_ViasatReader ); + if ( res ) + { + eDebug("[eEPGCache] couldnt initialize viasat reader!!"); + return; + } #ifdef ENABLE_PRIVATE_EPG res = demux->createSectionReader( this, data.m_PrivateReader ); if ( res ) @@ -1115,7 +1122,7 @@ bool eEPGCache::channel_data::finishEPG() eDebug("[EPGC] stop caching events(%ld)", ::time(0)); zapTimer->start(UPDATE_INTERVAL, 1); eDebug("[EPGC] next update in %i min", UPDATE_INTERVAL / 60000); - for (int i=0; i < 3; ++i) + for (unsigned int i=0; i < sizeof(seenSections)/sizeof(tidMap); ++i) { seenSections[i].clear(); calcedSections[i].clear(); @@ -1135,7 +1142,7 @@ void eEPGCache::channel_data::startEPG() eDebug("[EPGC] start caching events(%ld)", ::time(0)); state=0; haveData=0; - for (int i=0; i < 3; ++i) + for (unsigned int i=0; i < sizeof(seenSections)/sizeof(tidMap); ++i) { seenSections[i].clear(); calcedSections[i].clear(); @@ -1186,6 +1193,14 @@ void eEPGCache::channel_data::startEPG() m_ScheduleOtherReader->start(mask); isRunning |= SCHEDULE_OTHER; + mask.pid = 0x39; + + mask.data[0] = 0x40; + mask.mask[0] = 0x40; + m_ViasatReader->connectRead(slot(*this, &eEPGCache::channel_data::readDataViasat), m_ViasatConn); + m_ViasatReader->start(mask); + isRunning |= VIASAT; + abortTimer->start(7000,true); } @@ -1209,11 +1224,18 @@ void eEPGCache::channel_data::abortNonAvail() } if ( !(haveData&SCHEDULE_OTHER) && (isRunning&SCHEDULE_OTHER) ) { - eDebug("[EPGC] abort non avail schedule_other reading"); + eDebug("[EPGC] abort non avail schedule other reading"); isRunning &= ~SCHEDULE_OTHER; m_ScheduleOtherReader->stop(); m_ScheduleOtherConn=0; } + if ( !(haveData&VIASAT) && (isRunning&VIASAT) ) + { + eDebug("[EPGC] abort non avail viasat reading"); + isRunning &= ~VIASAT; + m_ViasatReader->stop(); + m_ViasatConn=0; + } #ifdef ENABLE_MHW_EPG if ( !(haveData&MHW) && (isRunning&MHW) ) { @@ -1225,12 +1247,14 @@ void eEPGCache::channel_data::abortNonAvail() m_MHWConn2=0; } #endif - if ( isRunning ) + if ( isRunning & VIASAT ) + abortTimer->start(300000, true); + else if ( isRunning ) abortTimer->start(90000, true); else { ++state; - for (int i=0; i < 3; ++i) + for (unsigned int i=0; i < sizeof(seenSections)/sizeof(tidMap); ++i) { seenSections[i].clear(); calcedSections[i].clear(); @@ -1259,7 +1283,7 @@ void eEPGCache::channel_data::startChannel() void eEPGCache::channel_data::abortEPG() { - for (int i=0; i < 3; ++i) + for (unsigned int i=0; i < sizeof(seenSections)/sizeof(tidMap); ++i) { seenSections[i].clear(); calcedSections[i].clear(); @@ -1287,6 +1311,12 @@ void eEPGCache::channel_data::abortEPG() m_ScheduleOtherReader->stop(); m_ScheduleOtherConn=0; } + if (isRunning & VIASAT) + { + isRunning &= ~VIASAT; + m_ViasatReader->stop(); + m_ViasatConn=0; + } #ifdef ENABLE_MHW_EPG if (isRunning & MHW) { @@ -1307,6 +1337,15 @@ void eEPGCache::channel_data::abortEPG() pthread_mutex_unlock(&channel_active); } + +void eEPGCache::channel_data::readDataViasat( const __u8 *data) +{ + __u8 *d=0; + memcpy(&d, &data, sizeof(__u8*)); + d[0] |= 0x80; + readData(data); +} + void eEPGCache::channel_data::readData( const __u8 *data) { int source; @@ -1329,6 +1368,17 @@ void eEPGCache::channel_data::readData( const __u8 *data) source=SCHEDULE_OTHER; map=2; break; + case 0xD0 ... 0xDF: + case 0xE0 ... 0xEF: + { + __u8 *d=0; + memcpy(&d, &data, sizeof(__u8*)); + d[0] &= ~0x80; + reader=m_ViasatReader; + source=VIASAT; + map=3; + break; + } default: eDebug("[EPGC] unknown table_id !!!"); return; @@ -1352,6 +1402,10 @@ void eEPGCache::channel_data::readData( const __u8 *data) m_ScheduleOtherConn=0; eDebugNoNewLine("schedule other"); break; + case VIASAT: + m_ViasatConn=0; + eDebugNoNewLine("viasat"); + break; default: eDebugNoNewLine("unknown");break; } eDebug(" finished(%ld)", ::time(0)); @@ -2983,7 +3037,7 @@ void eEPGCache::channel_data::readMHWData(const __u8 *data) if ( state > 1 || // aborted // have si data.. so we dont read mhw data - (haveData & (SCHEDULE|SCHEDULE_OTHER)) ) + (haveData & (SCHEDULE|SCHEDULE_OTHER|VIASAT)) ) { eDebug("[EPGC] mhw aborted %d", state); } @@ -3149,7 +3203,7 @@ void eEPGCache::channel_data::readMHWData2(const __u8 *data) if ( state > 1 || // aborted // have si data.. so we dont read mhw data - (haveData & (eEPGCache::SCHEDULE|eEPGCache::SCHEDULE_OTHER)) ) + (haveData & (SCHEDULE|SCHEDULE_OTHER|VIASAT)) ) { eDebug("[EPGC] mhw2 aborted %d", state); } diff --git a/lib/dvb/epgcache.h b/lib/dvb/epgcache.h index fc42ded5..dfd19482 100644 --- a/lib/dvb/epgcache.h +++ b/lib/dvb/epgcache.h @@ -159,9 +159,9 @@ class eEPGCache: public eMainloop, private eThread, public Object int prevChannelState; __u8 state, isRunning, haveData; ePtr channel; - ePtr m_stateChangedConn, m_NowNextConn, m_ScheduleConn, m_ScheduleOtherConn; - ePtr m_NowNextReader, m_ScheduleReader, m_ScheduleOtherReader; - tidMap seenSections[3], calcedSections[3]; + ePtr m_stateChangedConn, m_NowNextConn, m_ScheduleConn, m_ScheduleOtherConn, m_ViasatConn; + ePtr m_NowNextReader, m_ScheduleReader, m_ScheduleOtherReader, m_ViasatReader; + tidMap seenSections[4], calcedSections[4]; #ifdef ENABLE_PRIVATE_EPG ePtr startPrivateTimer; int m_PrevVersion; @@ -198,6 +198,7 @@ class eEPGCache: public eMainloop, private eThread, public Object void storeTitle(std::map<__u32, mhw_title_t>::iterator itTitle, std::string sumText, const __u8 *data); #endif void readData(const __u8 *data); + void readDataViasat(const __u8 *data); void startChannel(); void startEPG(); bool finishEPG(); @@ -210,6 +211,7 @@ public: #ifdef ENABLE_MHW_EPG ,MHW=8 #endif + ,VIASAT=16 }; struct Message { -- cgit v1.2.3 From ea4de8eab5e1b347d27a7ffef595d75c69b0f647 Mon Sep 17 00:00:00 2001 From: ghost Date: Wed, 13 May 2009 00:20:34 +0200 Subject: remove unneeded code --- lib/dvb/epgcache.cpp | 5 ----- 1 file changed, 5 deletions(-) (limited to 'lib') diff --git a/lib/dvb/epgcache.cpp b/lib/dvb/epgcache.cpp index 7f2b8369..5069e8c3 100644 --- a/lib/dvb/epgcache.cpp +++ b/lib/dvb/epgcache.cpp @@ -1370,15 +1370,10 @@ void eEPGCache::channel_data::readData( const __u8 *data) break; case 0xD0 ... 0xDF: case 0xE0 ... 0xEF: - { - __u8 *d=0; - memcpy(&d, &data, sizeof(__u8*)); - d[0] &= ~0x80; reader=m_ViasatReader; source=VIASAT; map=3; break; - } default: eDebug("[EPGC] unknown table_id !!!"); return; -- cgit v1.2.3 From 59029b9605036df707b2ae5f3a22fb38a054e358 Mon Sep 17 00:00:00 2001 From: acid-burn Date: Thu, 14 May 2009 16:45:20 +0200 Subject: make titles translateable whitespace cleanups --- .../CommonInterfaceAssignment/plugin.py | 36 +++++++++++++++------- 1 file changed, 25 insertions(+), 11 deletions(-) mode change 100644 => 100755 lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py (limited to 'lib') diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py old mode 100644 new mode 100755 index 4c8167d4..6e444b7b --- a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py +++ b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py @@ -18,8 +18,8 @@ from os import system, path as os_path class CIselectMainMenu(Screen): skin = """ - - + + @@ -54,7 +54,7 @@ class CIselectMainMenu(Screen): for slot in range(NUM_CI): state = eDVBCI_UI.getInstance().getState(slot) if state == 0: - appname = _("Slot %d") %(slot+1) + " - " + _("no module") + appname = _("Slot %d") %(slot+1) + " - " + _("no module found") elif state == 1: appname = _("Slot %d") %(slot+1) + " - " + _("init modules") elif state == 2: @@ -67,6 +67,10 @@ class CIselectMainMenu(Screen): menuList.list = self.list menuList.l.setList(self.list) self["CiList"] = menuList + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("CI assignment")) def greenPressed(self): cur = self["CiList"].getCurrent() @@ -100,7 +104,7 @@ class CIselectMainMenu(Screen): class CIconfigMenu(Screen): skin = """ - + @@ -121,7 +125,7 @@ class CIconfigMenu(Screen): Screen.__init__(self, session) self.ci_slot=ci_slot self.filename="/etc/enigma2/ci"+str(self.ci_slot)+".xml" - + self["key_red"] = StaticText(_("delete")) self["key_green"] = StaticText(_("add Service")) self["key_yellow"] = StaticText(_("add Provider")) @@ -138,7 +142,7 @@ class CIconfigMenu(Screen): "ok": self.okPressed, "cancel": self.cancel }, -1) - + print "[CI_Wizzard_Config] Configuring CI Slots : %d " % self.ci_slot i=0 @@ -163,6 +167,10 @@ class CIconfigMenu(Screen): # if config mode !=advanced autoselect any caid if config.usage.setup_level.index <= 1: # advanced self.selectedcaid=self.caidlist + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("CI assignment")) def redPressed(self): self.delete() @@ -197,7 +205,7 @@ class CIconfigMenu(Screen): service_name = service_ref.getServiceName() if find_in_list(self.servicelist, service_name, 0)==False: split_ref=service_ref.ref.toString().split(":") - if split_ref[0] == "1": #== dvb service und nicht muell von None + if split_ref[0] == "1":#== dvb service und nicht muell von None self.servicelist.append( (service_name , ConfigNothing(), 0, service_ref.ref.toString()) ) self["ServiceList"].l.setList(self.servicelist) @@ -301,7 +309,7 @@ class CIconfigMenu(Screen): class easyCIconfigMenu(CIconfigMenu): skin = """ - + @@ -317,7 +325,7 @@ class easyCIconfigMenu(CIconfigMenu): ci=ci_slot CIconfigMenu.__init__(self, session, ci_slot) self.skin = easyCIconfigMenu.skin - + self["actions"] = ActionMap(["ColorActions","SetupActions"], { "green": self.greenPressed, @@ -327,7 +335,7 @@ class easyCIconfigMenu(CIconfigMenu): "ok": self.okPressed, "cancel": self.cancel }, -1) - + def bluePressed(self): print "do nothing" @@ -341,7 +349,7 @@ class CAidSelect(Screen): """ - + def __init__(self, session, list, selected_caids): self.skin = CAidSelect.skin Screen.__init__(self, session) @@ -365,6 +373,10 @@ class CAidSelect(Screen): "green": self.greenPressed, "red": self.cancel }, -1) + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("select CAId's")) def greenPressed(self): list = self.list.getSelectionsList() @@ -411,6 +423,7 @@ class myProviderSelection(ChannelSelectionBase): def __onExecCallback(self): self.showSatellites() + self.setTitle(_("Select provider to add...")) def channelSelected(self): # just return selected service ref = self.getCurrentSelection() @@ -516,6 +529,7 @@ class myChannelSelection(ChannelSelectionBase): def __onExecCallback(self): self.setModeTv() + self.setTitle(_("Select service to add...")) def doNothing(self): print "nothing to do..." -- cgit v1.2.3