diff options
Diffstat (limited to 'lib/python/Components/Sources/RecordState.py')
| -rw-r--r-- | lib/python/Components/Sources/RecordState.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/python/Components/Sources/RecordState.py b/lib/python/Components/Sources/RecordState.py new file mode 100644 index 00000000..328f921b --- /dev/null +++ b/lib/python/Components/Sources/RecordState.py @@ -0,0 +1,32 @@ +from Source import Source +from Components.Element import cached +from enigma import iRecordableService + +class RecordState(Source): + def __init__(self, session): + Source.__init__(self) + self.records_running = 0 + self.session = session + session.nav.record_event.append(self.gotRecordEvent) + + def gotRecordEvent(self, service, event): + prev_records = self.records_running + if event in (iRecordableService.evEnd, iRecordableService.evStart): + recs = self.session.nav.getRecordings() + self.records_running = len(recs) + if self.records_running != prev_records: + self.changed((self.CHANGED_ALL,)) + + def destroy(self): + session.nav.record_event.remove(self.gotRecordEvent) + Source.destroy(self) + + @cached + def getBoolean(self): + return self.records_running and True or False + boolean = property(getBoolean) + + @cached + def getValue(self): + return self.records_running + value = property(getValue) |
