def update(self, id, tunerstate): #TODO Avolid blocking - avoid using getTimer to update the timer times use timer.time_changed if possible timer = getTimer(id) if timer: tunerstate.name = timer.name tunerstate.begin = timer.begin tunerstate.end = timer.end tunerstate.endless = timer.autoincrease irecordservice = timer.record_service servicereference = timer.service_ref # Delete references to avoid blocking tuners del timer if not tunerstate.tuner or not tunerstate.tunertype or not tunerstate.tunernumber: tunerstate.tuner, tunerstate.tunertype, tunerstate.tunernumber = getTunerByPlayableService( irecordservice) if not tunerstate.number: tunerstate.number = getNumber(servicereference.ref) if not tunerstate.channel: tunerstate.channel = getChannel(servicereference.ref) return True else: # This can happen, if the time has been changed or if the timer does not exist anymore self.onInit() return None
def update(self, id, tunerstate): #TODO Avolid blocking - avoid using getTimer to update the timer times use timer.time_changed if possible timer = getTimer( id ) if timer: tunerstate.name = timer.name tunerstate.begin = timer.begin tunerstate.end = timer.end if hasattr(timer, 'vpsplugin_enabled') and timer.vpsplugin_enabled: #and hasattr(timer, 'vpsplugin_overwrite') and timer.vpsplugin_overwrite: tunerstate.endless = False epgcache = eEPGCache.getInstance() if timer.eit: print "IBTS Records event by lookupEventId" event = epgcache.lookupEventId(timer.service_ref.ref, timer.eit) if not event: print "IBTS Records event by lookupEventTime" event = epgcache.lookupEventTime( timer.service_ref.ref, timer.begin + 5 ); if event: print "IBTS Records event" begin = event.getBeginTime() or 0 duration = event.getDuration() or 0 tunerstate.end = begin + duration if not tunerstate.end: print "IBTS Records no end" tunerstate.endless = True else: tunerstate.endless = timer.autoincrease else: tunerstate.endless = timer.autoincrease irecordservice = timer.record_service servicereference = timer.service_ref # Delete references to avoid blocking tuners del timer if not tunerstate.tuner or not tunerstate.tunertype or not tunerstate.tunernumber: tunerstate.tuner, tunerstate.tunertype, tunerstate.tunernumber = getTunerByPlayableService(irecordservice) if not tunerstate.number: tunerstate.number = getNumber(servicereference.ref) if not tunerstate.channel: tunerstate.channel = getChannel(servicereference.ref) return True else: # This can happen, if the time has been changed or if the timer does not exist anymore self.onInit() return False
def onEvent(self, mask): self.mask = mask self.tuners = [] bit = 1 for tunernumber in range(8): #print "IBTS UNKNOWN ", tunernumber, bit, bool(mask & bit) if bool(mask & bit): #print "IBTS UNKNOWN append tuner", tunernumber self.tuners.append(tunernumber) bit = bit << 1 # Remove live tuner if self.tuners: from NavigationInstance import instance iplayableservice = instance and instance.getCurrentService() if iplayableservice: tuner, tunertype, tunernumber = getTunerByPlayableService( iplayableservice) #print "IBTS UNKNOWN live tuner", tunernumber if tunernumber in self.tuners: #print "IBTS UNKNOWN remove tuner", tunernumber self.tuners.remove(tunernumber) else: del self.tuners[-1] if config.infobartunerstate.show_events.value: from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.onEvent()
def onEvent(self, mask): self.mask = mask self.tuners = [] bit = 1; for tunernumber in range(8): #print "IBTS UNKNOWN ", tunernumber, bit, bool(mask & bit) if bool(mask & bit): #print "IBTS UNKNOWN append tuner", tunernumber self.tuners.append(tunernumber) bit = bit << 1 # Remove live tuner if self.tuners: from NavigationInstance import instance iplayableservice = instance and instance.getCurrentService() if iplayableservice: tuner, tunertype, tunernumber = getTunerByPlayableService(iplayableservice) #print "IBTS UNKNOWN live tuner", tunernumber if tunernumber in self.tuners: #print "IBTS UNKNOWN remove tuner", tunernumber self.tuners.remove(tunernumber) else: del self.tuners[-1] if config.infobartunerstate.show_events.value: from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.onEvent()
def update(self, id, tunerstate): #TODO Avolid blocking - avoid using getTimer to update the timer times use timer.time_changed if possible timer = getTimer( id ) if timer: tunerstate.name = timer.name tunerstate.begin = timer.begin tunerstate.end = timer.end tunerstate.endless = timer.autoincrease irecordservice = timer.record_service servicereference = timer.service_ref # Delete references to avoid blocking tuners del timer if not tunerstate.tuner or not tunerstate.tunertype or not tunerstate.tunernumber: tunerstate.tuner, tunerstate.tunertype, tunerstate.tunernumber = getTunerByPlayableService(irecordservice) if not tunerstate.number: tunerstate.number = getNumber(servicereference.ref) if not tunerstate.channel: tunerstate.channel = getChannel(servicereference.ref) return True else: # This can happen, if the time has been changed or if the timer does not exist anymore self.onInit() return None
def onEvent(self, event, stream): if StreamingWebScreen and stream: if (event == StreamingWebScreen.EVENT_START): id = getStreamID(stream) log.debug("IBTS Stream Event WebIf Start " + id) irecordservice = stream.getRecordService() eservicereference = stream.getRecordServiceRef() # Extract parameters ip = str(stream.clientIP) if ip and ':' in ip and '.' in ip: # Mixed style ::ffff:192.168.64.27 ip = string.split(str(stream.clientIP), ':')[-1] # Delete references to avoid blocking tuners del stream tuner, tunertype, tunernumber = getTunerByPlayableService( irecordservice) name = getEventName(eservicereference) number = getNumber(eservicereference) channel = getChannel(eservicereference) reference = "" if eservicereference is not None: reference = str(ServiceReference(eservicereference)) client = getClient(ip) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.addEntry(id, self.getPluginName(), self.getType(), self.getText(), tuner, tunertype, tunernumber, name, number, channel, reference, time(), 0, True, "", client, ip) if config.infobartunerstate.plugin_webif.show_events.value: gInfoBarTunerState.onEvent() elif event == StreamingWebScreen.EVENT_END: # Remove Finished Stream id = getStreamID(stream) log.debug("IBTS Stream Event WebIf End " + id) # Delete references to avoid blocking tuners del stream from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.finishEntry(id) if config.infobartunerstate.plugin_webif.show_events.value: gInfoBarTunerState.onEvent()
def onEvent(self, timer): if not timer.justplay: #print "IBTS Timer Event "+ str(timer.state) + ' ' + str(timer.repeated) #TODO # w.processRepeated() # w.state = TimerEntry.StateWaiting if timer.state == timer.StatePrepared: print "IBTS Records StatePrepared" pass elif timer.state == timer.StateRunning: id = getTimerID( timer ) print "IBTS Records StateRunning ID " + id from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState and not gInfoBarTunerState.hasEntry(id): #TEST Bug Repeating timer blocking tuner and are not marked as finished #timer.timeChanged = self.__OnTimeChanged name = timer.name begin = timer.begin end = timer.end endless = timer.autoincrease # Is this really necessary? try: timer.Filename except: timer.calculateFilename() filename = timer.Filename irecordservice = timer.record_service servicereference = timer.service_ref # Delete references to avoid blocking tuners del timer tuner, tunertype, tunernumber = getTunerByPlayableService(irecordservice) number = getNumber(servicereference.ref) channel = getChannel(servicereference.ref) gInfoBarTunerState.addEntry(id, self.getPluginName(), self.getType(), self.getText(), tuner, tunertype, tunernumber, name, number, channel, begin, end, endless, filename) gInfoBarTunerState.onEvent() # Finished repeating timer will report the state StateEnded+1 or StateWaiting else: id = getTimerID( timer ) print "IBTS Records StateEnded ID " + id # Delete references to avoid blocking tuners del timer from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.finishEntry(id) gInfoBarTunerState.onEvent()
def onEvent(self, ev): #log.debug( "IBTS Live onEvent ev", ev, str(self.tunerstate) ) if ev == iPlayableService.evUpdatedEventInfo or ev == iPlayableService.evUpdatedInfo: if self.tunerstate: tunerstate = self.tunerstate from NavigationInstance import instance if instance: changed = False eservicereference = instance.getCurrentlyPlayingServiceReference() eservicereference_string = str(eservicereference) # Avoid recalculations if self.eservicereference_string != eservicereference_string: tunerstate.number = None tunerstate.channel = "" tunerstate.reference = "" tunerstate.tuner, tunerstate.tunertype, tunerstate.tunernumber = "", "", None tunerstate.name, tunerstate.begin, tunerstate.end = "", 0, 0 self.eservicereference_string = eservicereference_string if not tunerstate.number: tunerstate.number = getNumber(eservicereference) changed = True if not tunerstate.channel: tunerstate.channel = getChannel(eservicereference) changed = True if not tunerstate.reference: tunerstate.reference = str(ServiceReference(eservicereference)) tunerstate.updatePicon() changed = True iplayableservice = instance.getCurrentService() if not tunerstate.tuner or not tunerstate.tunertype or not tunerstate.tunernumber: tunerstate.tuner, tunerstate.tunertype, tunerstate.tunernumber = getTunerByPlayableService(iplayableservice) changed = True if not tunerstate.name or not tunerstate.begin or not tunerstate.end: tunerstate.name, tunerstate.begin, tunerstate.end = getEventData(iplayableservice) changed = True if changed: from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.updateMetrics() from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.onEvent()
def onEvent(self, event, stream): log.debug("IBTS Stream Event OpenWebIf") if StreamAdapter and stream: if (event == StreamAdapter.EV_BEGIN): id = getStreamID(stream) log.debug("IBTS Stream Event OpenWebIf Start " + id) irecordservice = stream.getService() eservicereference = stream.ref # Extract parameters ip = stream.clientIP # Delete references to avoid blocking tuners del stream tuner, tunertype, tunernumber = getTunerByPlayableService( irecordservice) name = getEventName(eservicereference) number = getNumber(eservicereference) channel = getChannel(eservicereference) reference = str(eservicereference) client = getClient(ip) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.addEntry(id, self.getPluginName(), self.getType(), self.getText(), tuner, tunertype, tunernumber, name, number, channel, reference, time(), 0, True, "", client, ip) if config.infobartunerstate.plugin_openwebif.show_events.value: gInfoBarTunerState.onEvent() elif event == StreamAdapter.EV_STOP: # Remove Finished Stream id = getStreamID(stream) log.debug("IBTS Stream Event OpenWebIf End " + id) # Delete references to avoid blocking tuners del stream from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.finishEntry(id) if config.infobartunerstate.plugin_openwebif.show_events.value: gInfoBarTunerState.onEvent()
def onEvent(self, event, stream): if StreamingWebScreen and stream: if (event == StreamingWebScreen.EVENT_START): id = getStreamID(stream) log.debug( "IBTS Stream Event WebIf Start " + id ) irecordservice = stream.getRecordService() eservicereference = stream.getRecordServiceRef() # Extract parameters ip = str(stream.clientIP) if ip and ':' in ip and '.' in ip: # Mixed style ::ffff:192.168.64.27 ip = string.split(str(stream.clientIP), ':')[-1] # Delete references to avoid blocking tuners del stream tuner, tunertype, tunernumber = getTunerByPlayableService( irecordservice ) name = getEventName(eservicereference) number = getNumber(eservicereference) channel = getChannel(eservicereference) reference = "" if eservicereference is not None: reference = str(ServiceReference(eservicereference)) client = getClient(ip) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.addEntry(id, self.getPluginName(), self.getType(), self.getText(), tuner, tunertype, tunernumber, name, number, channel, reference, time(), 0, True, "", client, ip) if config.infobartunerstate.plugin_webif.show_events.value: gInfoBarTunerState.onEvent() elif event == StreamingWebScreen.EVENT_END: # Remove Finished Stream id = getStreamID(stream) log.debug( "IBTS Stream Event WebIf End " + id ) # Delete references to avoid blocking tuners del stream from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.finishEntry(id) if config.infobartunerstate.plugin_webif.show_events.value: gInfoBarTunerState.onEvent()
def onEvent(self, event, stream): log.debug( "IBTS Stream Event OpenWebIf" ) if StreamAdapter and stream: if (event == StreamAdapter.EV_BEGIN): id = getStreamID(stream) log.debug( "IBTS Stream Event OpenWebIf Start " + id ) irecordservice = stream.getService() eservicereference = stream.ref # Extract parameters ip = stream.clientIP # Delete references to avoid blocking tuners del stream tuner, tunertype, tunernumber = getTunerByPlayableService(irecordservice) name = getEventName(eservicereference) number = getNumber(eservicereference) channel = getChannel(eservicereference) reference = str(eservicereference) client = getClient(ip) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.addEntry(id, self.getPluginName(), self.getType(), self.getText(), tuner, tunertype, tunernumber, name, number, channel, reference, time(), 0, True, "", client, ip) if config.infobartunerstate.plugin_openwebif.show_events.value: gInfoBarTunerState.onEvent() elif event == StreamAdapter.EV_STOP: # Remove Finished Stream id = getStreamID(stream) log.debug( "IBTS Stream Event OpenWebIf End " + id ) # Delete references to avoid blocking tuners del stream from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.finishEntry(id) if config.infobartunerstate.plugin_openwebif.show_events.value: gInfoBarTunerState.onEvent()
def onEvent(self, ev): #print "IBTS Live onEvent ev", ev, str(self.tunerstate) if ev == iPlayableService.evUpdatedEventInfo or ev == iPlayableService.evUpdatedInfo: if self.tunerstate: tunerstate = self.tunerstate from NavigationInstance import instance if instance: changed = False eservicereference = instance.getCurrentlyPlayingServiceReference() eservicereference_string = str(eservicereference) # Avoid recalculations if self.eservicereference_string != eservicereference_string: tunerstate.number = None tunerstate.channel = "" tunerstate.tuner, tunerstate.tunertype, tunerstate.tunernumber = "", "", None tunerstate.name, tunerstate.begin, tunerstate.end = "", 0, 0 self.eservicereference_string = eservicereference_string if not tunerstate.number: tunerstate.number = getNumber(eservicereference) changed = True if not tunerstate.channel: tunerstate.channel = getChannel(eservicereference) changed = True iplayableservice = instance.getCurrentService() if not tunerstate.tuner or not tunerstate.tunertype or not tunerstate.tunernumber: tunerstate.tuner, tunerstate.tunertype, tunerstate.tunernumber = getTunerByPlayableService(iplayableservice) changed = True if not tunerstate.name or not tunerstate.begin or not tunerstate.end: tunerstate.name, tunerstate.begin, tunerstate.end = getEventData(iplayableservice) changed = True if changed: from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.updateMetrics()
def onEvent(self, timer): if timer.justplay: return elif timer.state == timer.StatePrepared: log.debug("IBTS Records StatePrepared") return elif timer.state == timer.StateRunning: id = getTimerID(timer) log.debug("IBTS Records StateRunning ID " + id) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState and not gInfoBarTunerState.hasEntry(id): #TEST Bug Repeating timer blocking tuner and are not marked as finished #timer.timeChanged = self.__OnTimeChanged name = timer.name begin = timer.begin end = timer.end endless = timer.autoincrease # Is this really necessary? try: timer.Filename except: timer.calculateFilename() try: filename = timer.Filename except: filename = timer.name irecordservice = timer.record_service servicereference = timer.service_ref # Delete references to avoid blocking tuners del timer tuner, tunertype, tunernumber = getTunerByPlayableService( irecordservice) number = getNumber(servicereference.ref) channel = getChannel(servicereference.ref) reference = str(servicereference) gInfoBarTunerState.addEntry(id, self.getPluginName(), self.getType(), self.getText(), tuner, tunertype, tunernumber, name, number, channel, reference, begin, end, endless, filename) if config.infobartunerstate.plugin_records.show_events.value == "start" or config.infobartunerstate.plugin_records.show_events.value == "startend": gInfoBarTunerState.onEvent() elif timer.state == timer.StateEnded: id = getTimerID(timer) log.debug("IBTS Records StateEnded ID " + id) # Delete references to avoid blocking tuners del timer self.finish(id) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: if config.infobartunerstate.plugin_records.show_events.value == "startend" or config.infobartunerstate.plugin_records.show_events.value == "end": gInfoBarTunerState.onEvent() elif timer.state == timer.StateWaiting: id = getTimerID(timer) log.debug("IBTS Records StateWaiting ID " + id) finish = False # Finished repeating timer will report the state StateEnded+1 or StateWaiting if (timer.repeated != 0): finish = True # Delete references to avoid blocking tuners del timer if finish: self.finish(id) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: if config.infobartunerstate.plugin_records.show_events.value == "startend" or config.infobartunerstate.plugin_records.show_events.value == "end": gInfoBarTunerState.onEvent() elif timer.state == (timer.StateEnded + 1): id = getTimerID(timer) log.debug("IBTS Records StateEnded+1 ID " + id) finish = False # Finished repeating timer will report the state StateEnded+1 or StateWaiting if (timer.repeated != 0): finish = True # Delete references to avoid blocking tuners del timer if finish: self.finish(id) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: if config.infobartunerstate.plugin_records.show_events.value == "startend" or config.infobartunerstate.plugin_records.show_events.value == "end": gInfoBarTunerState.onEvent() else: # Unknown timer state id = getTimerID(timer) log.debug("IBTS Records unknown state " + str(timer.state) + " ID " + id) # Delete references to avoid blocking tuners del timer
def update(self, id, tunerstate): if config.infobartunerstate.plugin_pip.enabled.value: remove = True if tunerstate: from Screens.InfoBar import InfoBar if InfoBar.instance and InfoBar.instance.session: if hasattr(InfoBar.instance.session, "pip"): pip = InfoBar.instance.session.pip eservicereference = None if hasattr(pip, "currentService"): eservicereference = pip.currentService if eservicereference: log.debug( "IBTS PiP update service" ) remove = False changed = False eservicereference_string = str(eservicereference) # Avoid recalculations if self.eservicereference_string != eservicereference_string: tunerstate.number = None tunerstate.channel = "" tunerstate.reference = "" tunerstate.tuner, tunerstate.tunertype, tunerstate.tunernumber = "", "", None tunerstate.name, tunerstate.begin, tunerstate.end = "", 0, 0 self.eservicereference_string = eservicereference_string if not tunerstate.number: tunerstate.number = getNumber(eservicereference) changed = True if not tunerstate.channel: tunerstate.channel = getChannel(eservicereference) changed = True if not tunerstate.reference: #tunerstate.reference = eservicereference_string tunerstate.reference = str(ServiceReference(eservicereference)) tunerstate.updatePicon() changed = True iplayableservice = None if hasattr(pip, "pipservice"): iplayableservice = pip.pipservice #if hasattr(pip, "getCurrentServiceReference"): # iplayableservice = pip.getCurrentServiceReference() log.debug( "IBTS PiP update iPlay", str(iplayableservice) ) if iplayableservice: if not tunerstate.tuner or not tunerstate.tunertype or not tunerstate.tunernumber: tunerstate.tuner, tunerstate.tunertype, tunerstate.tunernumber = getTunerByPlayableService(iplayableservice) changed = True if not tunerstate.name or not tunerstate.begin or not tunerstate.end: tunerstate.name, tunerstate.begin, tunerstate.end = getEventData(iplayableservice) changed = True if changed: from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.updateMetrics() if remove: from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: gInfoBarTunerState.finishEntry(id) return False else: return True
def onEvent(self, event, stream): if StreamingWebScreen and stream: if event == StreamingWebScreen.EVENT_START: id = getStreamID(stream) print "IBTS Stream Event WebIf Start " + id irecordservice = stream.getRecordService() eservicereference = stream.getRecordServiceRef() # Extract parameters ip = str(stream.clientIP) if ip and ":" in ip and "." in ip: # Mixed style ::ffff:192.168.64.27 ip = string.split(str(stream.clientIP), ":")[-1] # Delete references to avoid blocking tuners del stream tuner, tunertype, tunernumber = getTunerByPlayableService(irecordservice) name = getEventName(eservicereference) number = getNumber(eservicereference) channel = getChannel(eservicereference) client = getClient(ip) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState gInfoBarTunerState.addEntry( id, self.getPluginName(), self.getType(), self.getText(), tuner, tunertype, tunernumber, name, number, channel, time(), 0, True, "", client, ip, ) gInfoBarTunerState.onEvent() elif event == StreamingWebScreen.EVENT_END: # Remove Finished Stream id = getStreamID(stream) print "IBTS Stream Event WebIf End " + id # Delete references to avoid blocking tuners del stream from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState gInfoBarTunerState.finishEntry(id) gInfoBarTunerState.onEvent()
def onEvent(self, timer): if timer.justplay: return elif timer.state == timer.StatePrepared: log.debug( "IBTS Records StatePrepared" ) return elif timer.state == timer.StateRunning: id = getTimerID( timer ) log.debug( "IBTS Records StateRunning ID " + id ) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState and not gInfoBarTunerState.hasEntry(id): #TEST Bug Repeating timer blocking tuner and are not marked as finished #timer.timeChanged = self.__OnTimeChanged name = timer.name begin = timer.begin end = timer.end endless = timer.autoincrease # Is this really necessary? try: timer.Filename except: timer.calculateFilename() try: filename = timer.Filename except: filename = timer.name irecordservice = timer.record_service servicereference = timer.service_ref # Delete references to avoid blocking tuners del timer tuner, tunertype, tunernumber = getTunerByPlayableService(irecordservice) number = getNumber(servicereference.ref) channel = getChannel(servicereference.ref) reference = str(servicereference) gInfoBarTunerState.addEntry(id, self.getPluginName(), self.getType(), self.getText(), tuner, tunertype, tunernumber, name, number, channel, reference, begin, end, endless, filename) if config.infobartunerstate.plugin_records.show_events.value == "start" or config.infobartunerstate.plugin_records.show_events.value == "startend": gInfoBarTunerState.onEvent() elif timer.state == timer.StateEnded: id = getTimerID( timer ) log.debug( "IBTS Records StateEnded ID " + id ) # Delete references to avoid blocking tuners del timer self.finish(id) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: if config.infobartunerstate.plugin_records.show_events.value == "startend" or config.infobartunerstate.plugin_records.show_events.value == "end": gInfoBarTunerState.onEvent() elif timer.state == timer.StateWaiting: id = getTimerID( timer ) log.debug( "IBTS Records StateWaiting ID " + id ) finish = False # Finished repeating timer will report the state StateEnded+1 or StateWaiting if (timer.repeated != 0): finish = True # Delete references to avoid blocking tuners del timer if finish: self.finish(id) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: if config.infobartunerstate.plugin_records.show_events.value == "startend" or config.infobartunerstate.plugin_records.show_events.value == "end": gInfoBarTunerState.onEvent() elif timer.state == (timer.StateEnded+1): id = getTimerID( timer ) log.debug( "IBTS Records StateEnded+1 ID " + id ) finish = False # Finished repeating timer will report the state StateEnded+1 or StateWaiting if (timer.repeated != 0): finish = True # Delete references to avoid blocking tuners del timer if finish: self.finish(id) from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState if gInfoBarTunerState: if config.infobartunerstate.plugin_records.show_events.value == "startend" or config.infobartunerstate.plugin_records.show_events.value == "end": gInfoBarTunerState.onEvent() else: # Unknown timer state id = getTimerID( timer ) log.debug( "IBTS Records unknown state " + str(timer.state) + " ID " + id ) # Delete references to avoid blocking tuners del timer