implement proper 'destroy' functions in Converter
[enigma2.git] / lib / python / Components / Sources / RecordState.py
1 from Source import Source
2 from Components.Element import cached
3 from enigma import iRecordableService
4
5 class RecordState(Source):
6         def __init__(self, session):
7                 Source.__init__(self)
8                 self.records_running = 0
9                 self.session = session
10                 session.nav.record_event.append(self.gotRecordEvent)
11
12         def gotRecordEvent(self, service, event):
13                 prev_records = self.records_running
14                 if event in (iRecordableService.evEnd, iRecordableService.evStart):
15                         recs = self.session.nav.getRecordings()
16                         self.records_running = len(recs)
17                         if self.records_running != prev_records:
18                                 self.changed((self.CHANGED_ALL,))
19
20         def destroy(self):
21                 session.nav.record_event.remove(self.gotRecordEvent)
22                 Source.destroy(self)
23
24         @cached
25         def getBoolean(self):
26                 return self.records_running and True or False
27         boolean = property(getBoolean)
28
29         @cached
30         def getValue(self):
31                 return self.records_running
32         value = property(getValue)