+from Screens.PiPSetup import PiPSetup
+
+class InfoBarExtensions:
+ def __init__(self):
+ self.pipshown = False
+
+ self["InstantExtensionsActions"] = HelpableActionMap(self, "InfobarExtensions",
+ {
+ "extensions": (self.extensions, "Extensions..."),
+ })
+
+ PIPON = 0
+ PIPOFF = 1
+ MOVEPIP = 2
+
+ def extensions(self):
+ list = []
+ if self.pipshown == False:
+ list.append((_("Activate Picture in Picture"), self.PIPON))
+ elif self.pipshown == True:
+ list.append((_("Disable Picture in Picture"), self.PIPOFF))
+ list.append((_("Move Picture in Picture"), self.MOVEPIP))
+ 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()
+ self.pipshown = True
+ else:
+ self.pipservice = None
+ 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.MOVEPIP:
+ self.session.open(PiPSetup, pip = self.pip)
+