diff options
Diffstat (limited to 'lib/python/Components/Sources')
| -rw-r--r-- | lib/python/Components/Sources/Boolean.py | 1 | ||||
| -rw-r--r-- | lib/python/Components/Sources/Clock.py | 1 | ||||
| -rw-r--r-- | lib/python/Components/Sources/CurrentService.py | 5 | ||||
| -rw-r--r-- | lib/python/Components/Sources/EventInfo.py | 5 | ||||
| -rw-r--r-- | lib/python/Components/Sources/FrontendInfo.py | 30 | ||||
| -rw-r--r-- | lib/python/Components/Sources/FrontendStatus.py | 1 | ||||
| -rw-r--r-- | lib/python/Components/Sources/RdsDecoder.py | 4 |
7 files changed, 44 insertions, 3 deletions
diff --git a/lib/python/Components/Sources/Boolean.py b/lib/python/Components/Sources/Boolean.py index c92027ae..212d2198 100644 --- a/lib/python/Components/Sources/Boolean.py +++ b/lib/python/Components/Sources/Boolean.py @@ -41,3 +41,4 @@ class Boolean(Source, object): def destroy(self): if self.poll_timer: self.poll_timer.callback.remove(self.poll) + Source.destroy(self) diff --git a/lib/python/Components/Sources/Clock.py b/lib/python/Components/Sources/Clock.py index 5130b21d..ba672825 100644 --- a/lib/python/Components/Sources/Clock.py +++ b/lib/python/Components/Sources/Clock.py @@ -29,3 +29,4 @@ class Clock(Source): def destroy(self): self.clock_timer.callback.remove(self.poll) + Source.destroy(self) diff --git a/lib/python/Components/Sources/CurrentService.py b/lib/python/Components/Sources/CurrentService.py index acc624a2..2501c176 100644 --- a/lib/python/Components/Sources/CurrentService.py +++ b/lib/python/Components/Sources/CurrentService.py @@ -27,3 +27,8 @@ class CurrentService(PerServiceBase, Source): return self.navcore.getCurrentService() service = property(getCurrentService) + + def destroy(self): + PerServiceBase.destroy(self) + Source.destroy(self) + diff --git a/lib/python/Components/Sources/EventInfo.py b/lib/python/Components/Sources/EventInfo.py index f3fd6e88..5af0bf97 100644 --- a/lib/python/Components/Sources/EventInfo.py +++ b/lib/python/Components/Sources/EventInfo.py @@ -35,3 +35,8 @@ class EventInfo(PerServiceBase, Source, object): self.changed((self.CHANGED_CLEAR,)) else: self.changed((self.CHANGED_ALL,)) + + def destroy(self): + PerServiceBase.destroy(self) + Source.destroy(self) + diff --git a/lib/python/Components/Sources/FrontendInfo.py b/lib/python/Components/Sources/FrontendInfo.py index 142573c9..bcca7c3d 100644 --- a/lib/python/Components/Sources/FrontendInfo.py +++ b/lib/python/Components/Sources/FrontendInfo.py @@ -1,12 +1,27 @@ +from enigma import iPlayableService from Source import Source +from Components.PerServiceDisplay import PerServiceBase -class FrontendInfo(Source): - def __init__(self, service_source = None, frontend_source = None): +class FrontendInfo(Source, PerServiceBase): + def __init__(self, service_source = None, frontend_source = None, navcore = None): + self.navcore = None Source.__init__(self) + if navcore: + PerServiceBase.__init__(self, navcore, + { + iPlayableService.evTunedIn: self.updateFrontendData, + iPlayableService.evEnd: self.serviceEnd + }) self.service_source = service_source self.frontend_source = frontend_source self.updateFrontendData() + def serviceEnd(self): +# import pdb +# pdb.set_trace() + self.slot_number = self.frontend_type = None + self.changed((self.CHANGED_CLEAR, )) + def updateFrontendData(self): data = self.getFrontendData() if not data: @@ -24,8 +39,17 @@ class FrontendInfo(Source): frontend.getFrontendData(dict) return dict elif self.service_source: - service = self.service_source() + service = self.navcore and self.service_source() + feinfo = service and service.frontendInfo() + return feinfo and feinfo.getFrontendData() + elif self.navcore: + service = self.navcore.getCurrentService() feinfo = service and service.frontendInfo() return feinfo and feinfo.getFrontendData() else: return None + + def destroy(self): + if not self.frontend_source and not self.service_source: + PerServiceBase.destroy(self) + Source.destroy(self) diff --git a/lib/python/Components/Sources/FrontendStatus.py b/lib/python/Components/Sources/FrontendStatus.py index 3e469e0d..821c9f12 100644 --- a/lib/python/Components/Sources/FrontendStatus.py +++ b/lib/python/Components/Sources/FrontendStatus.py @@ -49,4 +49,5 @@ class FrontendStatus(Source): def destroy(self): self.poll_timer.callback.remove(self.updateFrontendStatus) + Source.destroy(self) diff --git a/lib/python/Components/Sources/RdsDecoder.py b/lib/python/Components/Sources/RdsDecoder.py index 886f81f6..3ec9a25d 100644 --- a/lib/python/Components/Sources/RdsDecoder.py +++ b/lib/python/Components/Sources/RdsDecoder.py @@ -27,3 +27,7 @@ class RdsDecoder(PerServiceBase, Source, object): self.changed((self.CHANGED_CLEAR,)) else: self.changed((self.CHANGED_SPECIFIC, what)) + + def destroy(self): + PerServiceBase.destroy(self) + Source.destroy(self) |
