remove double import
[enigma2.git] / lib / python / Screens / Subtitles.py
index e3cdd71a4f58c79e3de56674488b52fea07d8776..31733d80ceca141b1e5444039dbfd696608433ba 100644 (file)
@@ -1,7 +1,9 @@
 from Screen import Screen
 from Screen import Screen
+from Components.ServiceEventTracker import ServiceEventTracker
 from Components.ActionMap import ActionMap
 from Components.ConfigList import ConfigListScreen
 from Components.config import config, getConfigListEntry, ConfigNothing
 from Components.ActionMap import ActionMap
 from Components.ConfigList import ConfigListScreen
 from Components.config import config, getConfigListEntry, ConfigNothing
+from enigma import iPlayableService
 
 from Tools.ISO639 import LanguageCodes
 
 
 from Tools.ISO639 import LanguageCodes
 
@@ -18,6 +20,18 @@ class Subtitles(Screen, ConfigListScreen):
                self.list = []
                ConfigListScreen.__init__(self, self.list)
                self.infobar = self.session.infobar
                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
                if self.subtitlesEnabled():
                        self.list.append(getConfigListEntry(_("Disable Subtitles"), ConfigNothing(), None))
                        sel = self.infobar.selected_subtitle
@@ -41,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))
                                                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)
 
 #              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 [ ]
        def getSubtitleList(self):
                s = self.infobar and self.infobar.getCurrentServiceSubtitle()
                l = s and s.getSubtitleList() or [ ]