def getSettingControlText(self, controlID): text = xbmc.getInfoLabel('System.CurrentControl') if text.endswith(')'): #Skip this most of the time text = text.replace( '( )', '{0} {1}'.format(self.service.tts.pauseInsert, util.T(32174))).replace( '(*)', '{0} {1}'.format( self.service.tts.pauseInsert, util.T(32173))) #For boolean settings return text
def active(self): util.LOG('SERVICE: ACTIVE') try: self.runServer() except: util.ERROR('Server Error') util.notify(util.T(32105), util.T(32106)) xbmc.sleep(5000) if not xbmc.abortRequested: #If not shutting down, reset in case we died of error self.loadSettings()
def getControlPostfix( self, controlID, ): if not self.service.speakListCount: return u'' numItems = xbmc.getInfoLabel('Container({0}).NumItems'.format( self.service.controlID)).decode('utf-8') if numItems: return u'... {0} {1}'.format( numItems, numItems != '1' and util.T(32107) or util.T(32106)) return u''
def getControlText(self, controlID): ID = self.window().getFocusId() if ID == 9: text = xbmc.getLocalizedString(19133).decode('utf-8') else: text = xbmc.getInfoLabel('System.CurrentControl').decode('utf-8') text = text.replace( '( )', '{0} {1}'.format(self.service.tts.pauseInsert, util.T(32174))).replace( '(*)', '{0} {1}'.format( self.service.tts.pauseInsert, util.T(32173))) #For boolean settings return (text, text)
def getControlText(self, controlID): if self.slideoutHasFocus(): return self.getSlideoutText(controlID) if not controlID: return (u'', u'') text = xbmc.getInfoLabel('ListItem.Label') if not text: return base.DefaultWindowReader.getControlText(self, controlID) status = u'' if xbmc.getCondVisibility('ListItem.IsResumable'): status = u': {0}'.format(util.T(32199).decode('utf-8')) else: if xbmc.getInfoLabel('ListItem.Overlay') == 'OverlayWatched.png': status = u': {0}'.format(util.T(32198).decode('utf-8')) return (u'{0}{1}'.format(text.decode('utf-8'), status), text)
def getControlText(self, controlID): label = xbmc.getInfoLabel('System.CurrentControl').decode('utf-8') selected = xbmc.getCondVisibility( 'Container({0}).ListItem.IsSelected'.format( controlID)) and ': {0}'.format(util.T(32200)) or '' text = u'{0}{1}'.format(label, selected) return (text, text)
def getMonitoredText(self, isSpeaking=False): text = self.getEditText() util.LOG_DEBUG( 'VirtualKeyboardreader.getMonitoredText: text={}'.format(text)) if text != self.keyboardText: if not self.keyboardText and len(text) > 1: self.keyboardText = text self.lastChange = time.time() return None self.lastChange = time.time() out = '' d = difflib.Differ() if not text and self.keyboardText: self.keyboardText = '' out = util.T(32178) elif self.isIP(text): if self.isIP(text) and self.isIP( self.keyboardText): #IP Address oldip = self.keyboardText.replace(' ', '').split('.') newip = text.replace(' ', '').split('.') for old, new in zip(oldip, newip): if old == new: continue out = ' '.join(list(new)) break elif len(text) > len(self.keyboardText): for c in d.compare(self.keyboardText, text): if c.startswith('+'): out += u' ' + (c.strip(' +') or util.T(32177)) else: for c in d.compare(self.keyboardText, text): if c.startswith('-'): out += u' ' + (c.strip(' -') or util.T(32177)) if out: out = out.strip() + ' {0}'.format(util.T(32179)) self.keyboardText = text if out: return out.strip() else: now = time.time() if now - self.lastChange > 2: #We haven't had input for a second, read all the text if text != self.lastRead: self.lastChange = now self.lastRead = text if self.isIP(text): return text.replace(' ', '') return text return None
class PVRWindowReader(PVRWindowReaderBase): ID = 'pvr' timelineInfo = ( util.T(32171), #PVR '$INFO[ListItem.ChannelNumber]', '$INFO[ListItem.ChannelName]', '$INFO[ListItem.StartTime]', 19160, '$INFO[ListItem.EndTime]', '$INFO[ListItem.Plot]') channelInfo = ('$INFO[ListItem.StartTime]', 19160, '$INFO[ListItem.EndTime]', '$INFO[ListItem.Plot]') nowNextInfo = (util.T(32171), '$INFO[ListItem.ChannelNumber]', '$INFO[ListItem.ChannelName]', '$INFO[ListItem.StartTime]', '$INFO[ListItem.Plot]') def controlIsOnView(self, controlID): return controlID > 9 and controlID < 18 def getControlText(self, controlID): if not controlID: return (u'', u'') text = None if controlID == 11 or controlID == 12: #Channel (TV or Radio) text = '{0}... {1}... {2}'.format( xbmc.getInfoLabel('ListItem.ChannelNumber'), xbmc.getInfoLabel('ListItem.Label'), xbmc.getInfoLabel('ListItem.Title')) else: text = xbmc.getInfoLabel('System.CurrentControl') if not text: return (u'', u'') compare = text + xbmc.getInfoLabel( 'ListItem.StartTime') + xbmc.getInfoLabel('ListItem.EndTime') return (text.decode('utf-8'), compare) def getItemExtraTexts(self, controlID): text = None if self.controlIsOnView(controlID): if controlID == 10: #EPG: Timeline text = guitables.convertTexts(self.winID, self.timelineInfo) elif controlID == 11 or controlID == 12: #Channel (TV or Radio) text = guitables.convertTexts(self.winID, self.channelInfo) elif controlID == 16: #EPG: Now/Next text = guitables.convertTexts(self.winID, self.nowNextInfo) return text
def volumeDown(self): if not self.settings or not 'volume' in self.settings: return util.T(32180) vol = self.setting('volume') vol -= self.volumeStep if vol < self.volumeExternalEndpoints[0]: vol = self.volumeExternalEndpoints[0] util.setSetting('{0}.{1}'.format('volume', self.provider), vol) if util.DEBUG: util.LOG('Volume DOWN: {0}'.format(vol)) return u'{0} {1}'.format(vol, self.volumeSuffix)
class PVRGuideWindowReader(PVRWindowReaderBase): ID = 'pvrguide' timelineInfo = ( util.T(32171), #PVR '$INFO[ListItem.ChannelNumber]', '$INFO[ListItem.ChannelName]', '$INFO[ListItem.StartTime]', 19160, '$INFO[ListItem.EndTime]', '$INFO[ListItem.Plot]') nowNextInfo = (util.T(32171), '$INFO[ListItem.ChannelNumber]', '$INFO[ListItem.ChannelName]', '$INFO[ListItem.StartTime]', '$INFO[ListItem.Plot]') def getControlText(self, controlID): if not controlID: return (u'', u'') if self.slideoutHasFocus(): return self.getSlideoutText(controlID) text = xbmc.getInfoLabel('System.CurrentControl') if not text: return (u'', u'') compare = text + xbmc.getInfoLabel( 'ListItem.StartTime') + xbmc.getInfoLabel('ListItem.EndTime') return (text.decode('utf-8'), compare) def getItemExtraTexts(self, controlID): text = None if self.controlIsOnView(controlID): if controlID == 10: #EPG: Timeline text = guitables.convertTexts(self.winID, self.timelineInfo) elif controlID == 11 or controlID == 12 or controlID == 13: #EPG: Now/Next/Channel info = list(self.nowNextInfo) if xbmc.getCondVisibility('ListItem.IsRecording'): info.append(19043) elif xbmc.getCondVisibility('ListItem.HasTimer'): info.append(31510) text = guitables.convertTexts(self.winID, info) return text
def runServer(self): while self.targetsBox.ready() and not xbmc.abortRequested: self.targetsBox.join() if self.targetsBox.device.hasPush(): if self.instantPlay: if not StreamUtils.isPlaying() or self.interruptMedia: data = self.targetsBox.device.getNext() if data: pushhandler.handlePush(data) else: if self.showNotification: data = self.targetsBox.device.getNext() if data: util.notify( '{0}: {1}'.format(util.T(32090), data.get('type', '?')), data.get('title', '')) self.targetsBox.device.clear() xbmc.sleep(200) self.targetsBox.close() self.targetsBox = None
def getControlText(self, controlID): label = xbmc.getInfoLabel('System.CurrentControl').decode('utf-8') try: util.LOG_DEBUG('{}.{}: label={}'.format('SelectDialogReader', 'getControlText', label)) except: pass try: selected = xbmc.getCondVisibility( 'Container({0}).ListItem.IsSelected'.format( controlID)) and ': {0}'.format(util.T(32200)) or '' except: selected = '' try: util.LOG_DEBUG( '{}.{}: Error when getting selected value! (ControlID={}, Label={}' .format('SelectDialogReader', 'getControlText', controlID, label)) except: pass try: util.LOG_DEBUG('{}.{}: selected={}'.format('SelectDialogReader', 'getControlText', selected)) except: pass text = u'{0}{1}'.format(label, selected) try: util.LOG_DEBUG('{}.{}: text={}'.format('SelectDialogReader', 'getControlText', text)) except: pass return (text, text)
# -*- coding: utf-8 -*- import xbmc from lib import util quartz = { 10000: { 301:{'name':20342,'prefix':util.T(32175)}, #Movies 302:{'name':20343,'prefix':util.T(32175)}, #TV Shows 303:{'name':2,'prefix':util.T(32175)}, #Music 304:{'name':1,'prefix':util.T(32175)}, #Pictures 305:{'name':24001,'prefix':util.T(32175)}, #Addons 306:{'name':'X B M C','prefix':util.T(32175)}, 312:{'name':20387,'prefix':util.T(32176)}, #Recently added tv shows 313:{'name':359,'prefix':util.T(32176)}, #Recently added albums } } skins = { 'quartz': quartz } CURRENT_SKIN_TABLE = None CURRENT_SKIN = None def getControlText(winID,controlID): table = CURRENT_SKIN_TABLE if not table: return if not winID in table: return if not controlID in table[winID]: return label = table[winID][controlID]['name'] if isinstance(label,int): label = xbmc.getLocalizedString(label) if not label: return if not 'prefix' in table[winID][controlID]: return label
def getControlText(self, controlID): if not controlID: return (u'', u'') sub = u'' text = self.getSettingControlText(controlID) if text.startswith('-'): sub = u'{0}: '.format(util.T(32172)) return (u'{0}{1}'.format(sub, text.decode('utf-8')), text)
def getWindowTexts(self): return [util.T(32124)]
def getAvailablePlayerSoundDevices(cls): util.LOG_DEBUG('{}.getAvailablePlayerSoundDevices'.format( cls.__name__)) devices = [('__default__', util.T(32203))] return devices