aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components/Sources/StreamService.py
blob: ac8db34d5447600a22310f90e6ecbe458b68577b (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
43
44
from Source import Source
from Components.Element import cached
from enigma import eServiceReference

class StreamService(Source):
	def __init__(self, navcore):
		Source.__init__(self)
		self.ref = None
		self.__service = None
		self.navcore = navcore

	def serviceEvent(self, event):
		pass

	@cached
	def getService(self):
		return self.__service

	service = property(getService)

	def handleCommand(self, cmd):
		print "StreamService handle command", cmd
		self.ref = eServiceReference(cmd)

	def recordEvent(self, service, event):
		if service is self.__service:
			return
		print "RECORD event for us:", service
		self.changed((self.CHANGED_ALL, ))

	def execBegin(self):
		print "StreamService execBegin", self.ref.toString()
		self.__service = self.navcore.recordService(self.ref)
		self.navcore.record_event.append(self.recordEvent)
		if self.__service is not None:
			self.__service.prepareStreaming()
			self.__service.start()

	def execEnd(self):
		print "StreamService execEnd", self.ref.toString()
		self.navcore.record_event.remove(self.recordEvent)
		if self.__service is not None:
			self.navcore.stopRecordService(self.__service)
			self.__service = None