remove double import
[enigma2.git] / lib / python / Screens / Subtitles.py
index ac2937ff867eba8604e40b379f9ed081262a2cfd..31733d80ceca141b1e5444039dbfd696608433ba 100644 (file)
@@ -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 [ ]