1 from Screen import Screen
2 from Components.ActionMap import ActionMap
3 from Components.ConfigList import ConfigListScreen
4 from Components.config import config, getConfigListEntry, ConfigNothing
6 from Tools.ISO639 import LanguageCodes
8 class Subtitles(Screen, ConfigListScreen):
9 def __init__(self, session):
10 Screen.__init__(self, session)
12 self["actions"] = ActionMap(["SetupActions"],
15 "cancel": self.cancel,
19 ConfigListScreen.__init__(self, self.list)
20 self.infobar = self.session.infobar
21 if self.subtitlesEnabled():
22 self.list.append(getConfigListEntry(_("Disable Subtitles"), ConfigNothing(), None))
23 sel = self.infobar.selected_subtitle
26 for x in self.getSubtitleList():
27 if sel and sel[:4] == x[:4]: #ignore Language code in compare
32 if LanguageCodes.has_key(x[4]):
33 self.list.append(getConfigListEntry(text+" DVB "+LanguageCodes[x[4]][0], ConfigNothing(), x))
35 self.list.append(getConfigListEntry(text+" DVB "+x[4], ConfigNothing(), x))
37 if x[4] == 'und': #undefined
38 self.list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2]), ConfigNothing(), x))
40 if LanguageCodes.has_key(x[4]):
41 self.list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2])+" "+LanguageCodes[x[4]][0], ConfigNothing(), x))
43 self.list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2])+" "+x[4], ConfigNothing(), x))
44 # return _("Disable subtitles")
45 self["config"].list = self.list
46 self["config"].l.setList(self.list)
48 def getSubtitleList(self):
49 s = self.infobar and self.infobar.getCurrentServiceSubtitle()
50 l = s and s.getSubtitleList() or [ ]
53 def subtitlesEnabled(self):
54 return self.infobar.subtitles_enabled
56 def enableSubtitle(self, subtitles):
57 if self.infobar.selected_subtitle != subtitles:
58 self.infobar.subtitles_enabled = False
59 self.infobar.selected_subtitle = subtitles
60 self.infobar.subtitles_enabled = True
62 def disableSubtitles(self):
63 self.infobar.subtitles_enabled = False
66 ConfigListScreen.keyLeft(self)
69 ConfigListScreen.keyRight(self)
73 cur = self["config"].getCurrent()
74 self.enableSubtitle(cur[2])