diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2006-05-22 03:26:50 +0000 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2006-05-22 03:26:50 +0000 |
| commit | 5e57d6b68efa092a6a85fdee2c6904c6bd473905 (patch) | |
| tree | 56b5e288e4ea1860fd1515895bb16026305cd04c /lib/python/Screens | |
| parent | fe920f22aa518fba79c4580673b758c75754ba35 (diff) | |
| download | enigma2-5e57d6b68efa092a6a85fdee2c6904c6bd473905.tar.gz enigma2-5e57d6b68efa092a6a85fdee2c6904c6bd473905.zip | |
add extension to swap picture in picture with big picture
Diffstat (limited to 'lib/python/Screens')
| -rw-r--r-- | lib/python/Screens/InfoBarGenerics.py | 18 | ||||
| -rw-r--r-- | lib/python/Screens/PictureInPicture.py | 19 |
2 files changed, 27 insertions, 10 deletions
diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 67212656..13bca8d1 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -1020,6 +1020,7 @@ class InfoBarExtensions: PIPON = 0 PIPOFF = 1 MOVEPIP = 2 + PIPSWAP = 3 def extensions(self): list = [] @@ -1028,29 +1029,30 @@ class InfoBarExtensions: elif self.pipshown == True: list.append((_("Disable Picture in Picture"), self.PIPOFF)) list.append((_("Move Picture in Picture"), self.MOVEPIP)) + list.append((_("Swap services"), self.PIPSWAP)) self.session.openWithCallback(self.extensionCallback, ChoiceBox, title=_("Please choose an extension..."), list = list) def extensionCallback(self, answer): if answer is not None: if answer[1] == self.PIPON: -# self.session.nav.stopService() self.pip = self.session.instantiateDialog(PictureInPicture) - #self.pip.show() newservice = self.session.nav.getCurrentlyPlayingServiceReference() - self.pipservice = eServiceCenter.getInstance().play(newservice) - if self.pipservice and not self.pipservice.setTarget(1): - self.pipservice.start() + + if self.pip.playService(newservice): self.pipshown = True else: - self.pipservice = None + self.pipshown = False del self.pip self.session.nav.playService(newservice) elif answer[1] == self.PIPOFF: - #self.pip.hide() - self.pipservice = None del self.pip self.pipshown = False + elif answer[1] == self.PIPSWAP: + swapservice = self.pip.getCurrentService() + self.pip.playService(self.session.nav.getCurrentlyPlayingServiceReference()) + self.session.nav.playService(swapservice) + elif answer[1] == self.MOVEPIP: self.session.open(PiPSetup, pip = self.pip) diff --git a/lib/python/Screens/PictureInPicture.py b/lib/python/Screens/PictureInPicture.py index 403ecd3d..20cdb236 100644 --- a/lib/python/Screens/PictureInPicture.py +++ b/lib/python/Screens/PictureInPicture.py @@ -1,5 +1,5 @@ from Screens.Screen import Screen -from enigma import ePoint, eSize +from enigma import ePoint, eSize, eServiceCenter from Components.VideoWindow import VideoWindow @@ -8,6 +8,7 @@ class PictureInPicture(Screen): Screen.__init__(self, session) self["video"] = VideoWindow() + self.currentService = None def move(self, x, y): print "moving pip to", str(x) + ":" + str(y) @@ -22,4 +23,18 @@ class PictureInPicture(Screen): return ((self.instance.position().x(), self.instance.position().y())) def getSize(self): - return (self.instance.size().width(), self.instance.size().height())
\ No newline at end of file + return (self.instance.size().width(), self.instance.size().height()) + + def playService(self, service): + self.pipservice = eServiceCenter.getInstance().play(service) + if self.pipservice and not self.pipservice.setTarget(1): + self.pipservice.start() + self.currentService = service + return True + else: + self.pipservice = None + return False + + def getCurrentService(self): + return self.currentService + |
