X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1889fbce45ea5471d15f95c04594d9aa2a429120..bcbd5801c2be23b2ee1a22e7b088fc2fb654f1c9:/lib/python/Components/PerServiceDisplay.py diff --git a/lib/python/Components/PerServiceDisplay.py b/lib/python/Components/PerServiceDisplay.py index 500538c3..cb86bd84 100644 --- a/lib/python/Components/PerServiceDisplay.py +++ b/lib/python/Components/PerServiceDisplay.py @@ -1,29 +1,34 @@ -from GUIComponent import * -from VariableText import * -from VariableValue import * +from GUIComponent import GUIComponent +from VariableText import VariableText +from VariableValue import VariableValue from enigma import iPlayableService from enigma import eLabel, eSlider, eTimer class PerServiceBase(object): - def __init__(self, navcore, eventmap): + def __init__(self, navcore, eventmap, with_event=False): self.eventmap = eventmap self.navcore = navcore - self.navcore.event.append(self.event) + self.navcore.event.append(self.event_callback) self.poll_timer = eTimer() - self.poll_timer.timeout.get().append(self.poll) + self.poll_timer.callback.append(self.poll) + self.with_event = with_event # start with stopped state, so simulate that - self.event(iPlayableService.evEnd) + self.event_callback(iPlayableService.evEnd) def destroy(self): - self.navcore.event.remove(self.event) + self.navcore.event.remove(self.event_callback) - def event(self, ev): + def event_callback(self, ev): # loop up if we need to handle this event - if self.eventmap.has_key(ev): + func = self.eventmap.get(ev) + if func: # call handler - self.eventmap[ev]() + if self.with_event: + func(ev) + else: + func() def enablePolling(self, interval=60000): if interval: @@ -44,12 +49,17 @@ class PerServiceDisplay(PerServiceBase, VariableText, GUIComponent): VariableText.__init__(self) PerServiceBase.__init__(self, navcore, eventmap) + def destroy(self): + PerServiceBase.destroy(self) + GUIComponent.destroy(self) + GUI_WIDGET = eLabel class PerServiceDisplayProgress(PerServiceBase, VariableValue, GUIComponent): def __init__(self, navcore, eventmap): GUIComponent.__init__(self) VariableValue.__init__(self) + PerServiceBase.__init__(self, navcore, eventmap) self.eventmap = eventmap self.navcore = navcore self.navcore.event.append(self.event) @@ -58,3 +68,7 @@ class PerServiceDisplayProgress(PerServiceBase, VariableValue, GUIComponent): self.event(iPlayableService.evEnd) GUI_WIDGET = eSlider + + def destroy(self): + PerServiceBase.destroy(self) + GUIComponent.destroy(self)