aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens/ServiceStopScreen.py
blob: 628a93a5a0f819e7289751372afd07c8a6c9a334 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from Screens.MessageBox import MessageBox

class ServiceStopScreen:
	def __init__(self):
		try:
			self.session
		except:
			print "[ServiceStopScreen] ERROR: no self.session set"

		self.oldref = None
		self.onClose.append(self.__onClose)
		
	def pipAvailable(self):
		# pip isn't available in every state of e2
		try:
			self.session.pipshown
			pipavailable = True
		except:
			pipavailable = False
		return pipavailable
		
	def stopService(self):		
		self.oldref = self.session.nav.getCurrentlyPlayingServiceReference()
		self.session.nav.stopService()
		if self.pipAvailable():
			if self.session.pipshown: # try to disable pip
				self.session.pipshown = False
				del self.session.pip
		
	def __onClose(self):
		self.session.nav.playService(self.oldref)
		
	def restoreService(self, msg = _("Zap back to previously tuned service?")):
		if self.oldref:
			self.session.openWithCallback(self.restartPrevService, MessageBox, msg, MessageBox.TYPE_YESNO)
		else:
			self.restartPrevService(False)
		
	def restartPrevService(self, yesno):
		if not yesno:
			self.oldref=None
		self.close()