コード例 #1
0
class SelectionView(xbmcgui.WindowXMLDialog):
    def __init__(self, *args, **kwargs):
        xbmcgui.WindowXMLDialog.__init__(self, *args, **kwargs)
        Addon = sys.modules['__main__'].Addon
        
        self.Settings = Addon.getSetting
        self.Strings = Addon.getLocalizedString
    
    def onInit(self):
        self.action_exitkeys_id = [10, 13]
        
        self.bEdit = self.getControl(3000)
        self.bCut = self.getControl(3001)
        self.lTitle = self.getControl(3005)
        self.lStatus = self.getControl(3021)
        self.lDebug = self.getControl(3020)
        
        self.bEdit.setLabel(self.Strings(3108))
        self.bCut.setLabel(self.Strings(3109))
        self.lTitle.setLabel(self.Strings(3110))
        
        self.Recording = None
        
        self.lRecordings = self.getControl(3002)
        
        self.RestfulAPI = RestfulAPI("127.0.0.1", 8002)        
        
        self.Recordings = self.RestfulAPI.getRecordings()
        
        self.Recordings = sorted(self.Recordings, cmp=VDRRecording.compare)
        
        self.updateCutterStatus()
        
        for rec in self.Recordings:
            self.lRecordings.addItem(rec.Name)
        
    def onAction(self, action):
        if action in self.action_exitkeys_id:
            self.Mode = False
            self.close()
    
    def onClick(self, controlId):
        if controlId == 3002:
            Control.SetFocus(3000, 0)
        if controlId == 3000:
            pos = self.lRecordings.getSelectedPosition()
            self.Recording = self.Recordings[pos]
            self.close()
        if controlId == 3001:
            self.cutRecording()
            self.lStatus.setLabel("VDR Cutter Status: Active")
            
    def __getRecording(self):
        return self.__recording

    def __setRecording(self, recording):
        self.__recording = recording
    
    def onFocus(self, controlId):
        pass
    
    def cutRecording(self):
        pos = self.lRecordings.getSelectedPosition()
        self.RestfulAPI.refreshRecording(self.Recordings[pos]) #update ID if it has changed (recording ID's are dynamic)
        rec = self.Recordings[pos].RecordingId
        self.RestfulAPI.cutRecording(rec)
                
    def updateCutterStatus(self):
        status = "VDR Cutter Status: "
        
        if self.RestfulAPI.isCutterActive():
            status += "Active"
        else:
            status += "Inactive"
            
        self.lStatus.setLabel(status)
    
    Recording = property(__getRecording, __setRecording)