1 from Plugins.Plugin import PluginDescriptor
2 from Components.ServiceEventTracker import ServiceEventTracker
3 from Screens.Screen import Screen
4 from enigma import iPlayableService
6 # config file to read/write state
7 POLICY = "/proc/stb/video/policy"
9 # list of mode choices to cycle through
10 MODE_CHOICES = ["letterbox", "panscan"]
14 mode = f.read().strip("\n")
24 class LetterBox(Screen):
25 def __init__(self, session):
26 Screen.__init__(self, session)
28 self.tracker = ServiceEventTracker(screen=self, eventmap=
29 { iPlayableService.evStart: self.reset, })
34 set_mode(self.default)
37 self.default = get_mode()
41 if not mode in MODE_CHOICES:
42 MODE_CHOICES.append(mode)
43 modeidx = MODE_CHOICES.index(mode)
44 modeidx = (modeidx + 1) % len(MODE_CHOICES)
45 set_mode(MODE_CHOICES[modeidx])
50 def zoom_init(reason, **kwargs):
52 letterbox = LetterBox(kwargs["session"])
54 def zoom_toggle(session, **kwargs):
58 def Plugins(**kwargs):
59 plname = "LetterBox Zoom"
60 return [PluginDescriptor(name=plname,
61 description="Zoom into letterboxed movies",
62 where=PluginDescriptor.WHERE_EXTENSIONSMENU,
64 PluginDescriptor(where=PluginDescriptor.WHERE_SESSIONSTART,