cleanup some imports
[vuplus_dvbapp] / lib / python / Screens / Subtitles.py
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
5
6 from Tools.ISO639 import LanguageCodes
7
8 class Subtitles(Screen, ConfigListScreen):
9         def __init__(self, session):
10                 Screen.__init__(self, session)
11         
12                 self["actions"] = ActionMap(["SetupActions"],
13                 {
14                         "ok": self.ok,
15                         "cancel": self.cancel,
16                 }, -2)
17
18                 self.list = []
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
24                 else:
25                         sel = None
26                 for x in self.getSubtitleList():
27                         if sel and sel[:4] == x[:4]: #ignore Language code in compare
28                                 text = _("Running")
29                         else:
30                                 text = _("Enable")
31                         if x[0] == 0:
32                                 if LanguageCodes.has_key(x[4]):
33                                         self.list.append(getConfigListEntry(text+" DVB "+LanguageCodes[x[4]][0], ConfigNothing(), x))
34                                 else:
35                                         self.list.append(getConfigListEntry(text+" DVB "+x[4], ConfigNothing(), x))
36                         elif x[0] == 1:
37                                 if x[4] == 'und': #undefined
38                                         self.list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2]), ConfigNothing(), x))
39                                 else:
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))
42                                         else:
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)
47
48         def getSubtitleList(self):
49                 s = self.infobar and self.infobar.getCurrentServiceSubtitle()
50                 l = s and s.getSubtitleList() or [ ]
51                 return l
52
53         def subtitlesEnabled(self):
54                 return self.infobar.subtitles_enabled
55
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
61
62         def disableSubtitles(self):
63                 self.infobar.subtitles_enabled = False
64
65         def keyLeft(self):
66                 ConfigListScreen.keyLeft(self)
67
68         def keyRight(self):
69                 ConfigListScreen.keyRight(self)
70
71         def ok(self):
72                 if len(self.list):
73                         cur = self["config"].getCurrent()
74                         self.enableSubtitle(cur[2])
75                 self.close(1)
76
77         def cancel(self):
78                 self.close()