X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/6ebe2f45ec609f3769a4a57e4bbbf776aa3cb930..3259f96f2e8f864709b819b4d27ee8ef551eeb2c:/lib/python/Screens/Subtitles.py diff --git a/lib/python/Screens/Subtitles.py b/lib/python/Screens/Subtitles.py index ac2937ff..31733d80 100644 --- a/lib/python/Screens/Subtitles.py +++ b/lib/python/Screens/Subtitles.py @@ -1,8 +1,9 @@ from Screen import Screen +from Components.ServiceEventTracker import ServiceEventTracker from Components.ActionMap import ActionMap -from Components.ConfigList import ConfigList, ConfigListScreen +from Components.ConfigList import ConfigListScreen from Components.config import config, getConfigListEntry, ConfigNothing -from Components.Label import Label +from enigma import iPlayableService from Tools.ISO639 import LanguageCodes @@ -19,6 +20,18 @@ class Subtitles(Screen, ConfigListScreen): self.list = [] ConfigListScreen.__init__(self, self.list) self.infobar = self.session.infobar + self.fillList() + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evUpdatedInfo: self.__updatedInfo + }) + self.cached_subtitle_checked = False + self.__selected_subtitle = None + + def fillList(self): + del self.list[:] + print "self.list", self.list if self.subtitlesEnabled(): self.list.append(getConfigListEntry(_("Disable Subtitles"), ConfigNothing(), None)) sel = self.infobar.selected_subtitle @@ -42,10 +55,21 @@ class Subtitles(Screen, ConfigListScreen): self.list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2])+" "+LanguageCodes[x[4]][0], ConfigNothing(), x)) else: self.list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2])+" "+x[4], ConfigNothing(), x)) + elif x[0] == 2: + if x[4] == 'und': #undefined + self.list.append(getConfigListEntry(text+" subtitle stream %d " % x[1], ConfigNothing(), x)) + else: + if LanguageCodes.has_key(x[4]): + self.list.append(getConfigListEntry(text+" subtitle stream %d " % x[1] +LanguageCodes[x[4]][0], ConfigNothing(), x)) + else: + self.list.append(getConfigListEntry(text+" subtitle stream %d " % x[1] +x[4], ConfigNothing(), x)) # return _("Disable subtitles") self["config"].list = self.list self["config"].l.setList(self.list) + def __updatedInfo(self): + self.fillList() + def getSubtitleList(self): s = self.infobar and self.infobar.getCurrentServiceSubtitle() l = s and s.getSubtitleList() or [ ]