1 from Screens.Screen import Screen
2 from enigma import ePoint, eSize, eServiceCenter
3 from Components.VideoWindow import VideoWindow
4 from Components.config import config, ConfigPosition
6 class PictureInPicture(Screen):
7 def __init__(self, session):
8 Screen.__init__(self, session)
9 self["video"] = VideoWindow()
10 self.currentService = None
11 config.av.pip = ConfigPosition(default=[-1, -1, -1, -1], limits = (719, 567, 720, 568))
12 self.onLayoutFinish.append(self.LayoutFinished)
14 def LayoutFinished(self):
15 self.onLayoutFinish.remove(self.LayoutFinished)
16 x = config.av.pip.value[0]
17 y = config.av.pip.value[1]
18 w = config.av.pip.value[2]
19 h = config.av.pip.value[3]
20 if x != -1 and y != -1 and w != -1 and h != -1:
25 config.av.pip.value[0] = x
26 config.av.pip.value[1] = y
28 self.instance.move(ePoint(x, y))
30 def resize(self, w, h):
31 config.av.pip.value[2] = w
32 config.av.pip.value[3] = h
34 self.instance.resize(eSize(*(w, h)))
35 self["video"].instance.resize(eSize(*(w, h)))
37 def getPosition(self):
38 return ((self.instance.position().x(), self.instance.position().y()))
41 return (self.instance.size().width(), self.instance.size().height())
43 def playService(self, service):
44 self.pipservice = eServiceCenter.getInstance().play(service)
45 if self.pipservice and not self.pipservice.setTarget(1):
46 self.pipservice.start()
47 self.currentService = service
50 self.pipservice = None
53 def getCurrentService(self):
54 return self.currentService