split Misc Converter/Source into RecordState and TunerInfo Source /
[enigma2.git] / lib / python / Components / Sources / RecordState.py
diff --git a/lib/python/Components/Sources/RecordState.py b/lib/python/Components/Sources/RecordState.py
new file mode 100644 (file)
index 0000000..328f921
--- /dev/null
@@ -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)