示例#1
0
 def onShow(self, tunerstates):
     if config.infobartunerstate.plugin_pip.enabled.value:
         if not self.tunerstate:
             self.tunerstate = self.checkPiP()
         else:
             from Screens.InfoBar import InfoBar
             if InfoBar.instance and InfoBar.instance.session and hasattr(
                     InfoBar.instance.session, "pip") == False:
                 from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState
                 if gInfoBarTunerState:
                     gInfoBarTunerState.removeEntry("PiP")
	def onShow(self, tunerstates):
		if config.infobartunerstate.plugin_timers.enabled.value:
			number_pending_timers = int( config.infobartunerstate.plugin_timers.number_pending_timers.value )
			#log.debug( "IBTS number_pending_timers", number_pending_timers )
			
			toremove = self.nextids[:]
			
			if number_pending_timers:
				pending_seconds = int( config.infobartunerstate.plugin_timers.pending_hours.value ) * 3600
				pending_limit = (time() + pending_seconds) if pending_seconds else 0
				#log.debug( "IBTS pending_limit", pending_limit )
				timer_end = 0
				timer_list = getNextPendingRecordTimers(pending_limit)[:]
				#pprint.pprint(timer_list)
				
				if timer_list:
					
					#timer_list.reverse()
					
					for i, timer in enumerate(timer_list):
						if i>=number_pending_timers+timer_end:
							break
						if timer:
							
							id = getTimerID( timer )
							#log.debug( "IBTS toadd", id )
							
							if id in toremove:
								toremove.remove(id)
							
							# Only add timer if not recording
							from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState
							if gInfoBarTunerState:
								if gInfoBarTunerState.hasEntry(id):
									
									# Delete references to avoid blocking tuners
									del timer
									
								else:
								
									name = timer.name
									servicereference = timer.service_ref
									
									# if ((name=="Ausschalten")or(name=="Einschalten")or(name=="Standby"))and(config.infobartunerstate.plugin_timers.show_energy_timers.value==False):
									# isset zapbeforerecord="0" justremind="0" wakeup_t="0" shutdown_t="0" notify_t="0" standby_t="1"
									
									if (str(servicereference)[0]=="-")and(config.infobartunerstate.plugin_timers.show_energy_timers.value==False):
										timer_end+=1
										
									else:
										# Is this really necessary?
										try: timer.Filename
										except: timer.calculateFilename()
										
										try: filename = timer.Filename
										except: filename = timer.name
										
										begin = timer.begin
										end = timer.end
										endless = timer.autoincrease
										
										# Delete references to avoid blocking tuners
										del timer
										
										number = getNumber(servicereference.ref)
										channel = getChannel(servicereference.ref)
										reference = str(servicereference)
										
										self.nextids.append(id)
										gInfoBarTunerState.addEntry(id, self.getPluginName(), self.getType(), self.getText(), "", "", None, name, number, channel, reference, begin, end, endless, filename)

				# Close all not touched next timers
				if toremove:
					from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState
					if gInfoBarTunerState:
						log.debug( "IBTS toremove" )
						#pprint.pprint(toremove)
						for id in toremove:
							log.debug( "IBTS timers toremove", id )
							if id in self.nextids:
								self.nextids.remove(id)
							gInfoBarTunerState.removeEntry(id)
示例#3
0
    def onShow(self, tunerstates):
        if config.infobartunerstate.plugin_timers.enabled.value:
            number_pending_timers = int(config.infobartunerstate.plugin_timers.number_pending_timers.value)
            # print "IBTS number_pending_timers", number_pending_timers

            toremove = self.nextids[:]

            if number_pending_timers:
                pending_seconds = int(config.infobartunerstate.plugin_timers.pending_hours.value) * 3600
                pending_limit = (time() + pending_seconds) if pending_seconds else 0
                # print "IBTS pending_limit", pending_limit

                timer_list = getNextPendingRecordTimers(pending_limit)[:number_pending_timers]

                if timer_list:

                    timer_list.reverse()

                    for i, timer in enumerate(timer_list):

                        if timer:

                            id = getTimerID(timer)
                            # print "IBTS toadd", id

                            # Only add timer if not recording
                            from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState

                            if gInfoBarTunerState:
                                if gInfoBarTunerState.hasEntry(id):

                                    # Delete references to avoid blocking tuners
                                    del timer

                                else:

                                    name = timer.name
                                    servicereference = timer.service_ref

                                    # Is this really necessary?
                                    try:
                                        timer.Filename
                                    except:
                                        timer.calculateFilename()

                                    try:
                                        filename = timer.Filename
                                    except:
                                        filename = timer.name

                                    begin = timer.begin
                                    end = timer.end
                                    endless = timer.autoincrease

                                    # Delete references to avoid blocking tuners
                                    del timer

                                    number = getNumber(servicereference.ref)
                                    channel = getChannel(servicereference.ref)

                                    self.nextids.append(id)
                                    gInfoBarTunerState.addEntry(
                                        id,
                                        self.getPluginName(),
                                        self.getType(),
                                        self.getText(),
                                        "",
                                        "",
                                        None,
                                        name,
                                        number,
                                        channel,
                                        begin,
                                        end,
                                        endless,
                                        filename,
                                    )

                                if id in toremove:
                                    toremove.remove(id)

                                    # Close all not touched next timers
                if toremove:
                    from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState

                    if gInfoBarTunerState:
                        # print "IBTS toremove"
                        for id in toremove:
                            # print "IBTS toremove", id
                            if id in self.nextids:
                                self.nextids.remove(id)
                            gInfoBarTunerState.removeEntry(id)
示例#4
0
    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
                                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.removeEntry(id)
                return False

            else:
                return True
示例#5
0
    def onShow(self, tunerstates):
        if config.infobartunerstate.plugin_timers.enabled.value:
            number_pending_timers = int(config.infobartunerstate.plugin_timers.
                                        number_pending_timers.value)
            #print "IBTS number_pending_timers", number_pending_timers

            toremove = self.nextids[:]

            if number_pending_timers:
                pending_seconds = int(config.infobartunerstate.plugin_timers.
                                      pending_hours.value) * 3600
                pending_limit = (time() +
                                 pending_seconds) if pending_seconds else 0
                #print "IBTS pending_limit", pending_limit

                timer_list = getNextPendingRecordTimers(
                    pending_limit)[:number_pending_timers]

                if timer_list:

                    timer_list.reverse()

                    for i, timer in enumerate(timer_list):

                        if timer:

                            id = getTimerID(timer)
                            #print "IBTS toadd", id

                            # Only add timer if not recording
                            from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState
                            if gInfoBarTunerState:
                                if gInfoBarTunerState.hasEntry(id):

                                    # Delete references to avoid blocking tuners
                                    del timer

                                else:

                                    name = timer.name
                                    servicereference = timer.service_ref

                                    # Is this really necessary?
                                    try:
                                        timer.Filename
                                    except:
                                        timer.calculateFilename()

                                    try:
                                        filename = timer.Filename
                                    except:
                                        filename = timer.name

                                    begin = timer.begin
                                    end = timer.end
                                    endless = timer.autoincrease

                                    # Delete references to avoid blocking tuners
                                    del timer

                                    number = getNumber(servicereference.ref)
                                    channel = getChannel(servicereference.ref)

                                    self.nextids.append(id)
                                    gInfoBarTunerState.addEntry(
                                        id,
                                        self.getPluginName(), self.getType(),
                                        self.getText(), "", "", None, name,
                                        number, channel, begin, end, endless,
                                        filename)

                                if id in toremove:
                                    toremove.remove(id)

                # Close all not touched next timers
                if toremove:
                    from Plugins.Extensions.InfoBarTunerState.plugin import gInfoBarTunerState
                    if gInfoBarTunerState:
                        #print "IBTS toremove"
                        for id in toremove:
                            #print "IBTS toremove", id
                            if id in self.nextids:
                                self.nextids.remove(id)
                            gInfoBarTunerState.removeEntry(id)