Exemplo n.º 1
0
 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
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
    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
Exemplo n.º 8
0
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
Exemplo n.º 9
0
 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)
Exemplo n.º 10
0
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
Exemplo n.º 11
0
    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
Exemplo n.º 12
0
    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)
Exemplo n.º 13
0
# -*- 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
Exemplo n.º 14
0
 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)
Exemplo n.º 15
0
 def getWindowTexts(self):
     return [util.T(32124)]
Exemplo n.º 16
0
 def getAvailablePlayerSoundDevices(cls):
     util.LOG_DEBUG('{}.getAvailablePlayerSoundDevices'.format(
         cls.__name__))
     devices = [('__default__', util.T(32203))]
     return devices