code cleanup,
[enigma2.git] / lib / python / Components / Sources / ServiceEvent.py
1 from Components.Element import cached
2 from enigma import eServiceCenter, eServiceReference as Ref
3 from Source import Source
4
5 class ServiceEvent(Source, object):
6         def __init__(self):
7                 Source.__init__(self)
8                 self.service = None 
9
10         @cached
11         def getCurrentService(self):
12                 return self.service
13
14         @cached
15         def getCurrentEvent(self):
16                 return self.service and self.info and self.info.getEvent(self.service)
17
18         @cached
19         def getInfo(self):
20                 return self.service and eServiceCenter.getInstance().info(self.service)
21
22         event = property(getCurrentEvent)
23         info = property(getInfo)
24
25         def newService(self, ref):
26                 if not self.service or self.service != ref:
27                         self.service = ref
28                         if not ref or (ref.flags & Ref.flagDirectory) == Ref.flagDirectory or ref.flags & Ref.isMarker:
29                                 self.changed((self.CHANGED_CLEAR,))
30                         else:
31                                 self.changed((self.CHANGED_ALL,))