Exemple #1
0
    def run(self, monitor):
        self.monitor = monitor
        self.monitor.reset()
        preview_enabled_cameras = []        
        self.threads = []
        
        for camera_number in "123456":

            utils.log(2, 'Camera %s :: Enabled: %s;  Preview Enabled: %s' %(camera_number, settings.enabled_camera(camera_number), settings.enabled_preview(camera_number)))
            if settings.enabled_camera(camera_number):
                camera = Camera(camera_number)

                if settings.enabled_preview(camera_number):
                    
                    if camera.Connected(self.monitor, useCache=False):

                        previewWindow = threading.Thread(target = camerapreview.CameraPreviewWindow, args = (camera, self.monitor, ))
                        previewWindow.daemon = True
                        previewWindow.start()
                        
                        t = CameraPreviewThread(camera, self.monitor, )
                        t.daemon = True 
                        self.threads.append(t)
                        t.start()

                        utils.log(1, 'Camera %s :: Preview Thread started.' %camera_number)

                    else:
                        utils.log(1, 'Camera %s :: Preview thread did not start because camera is not properly configured.' %camera_number)
                        utils.notify('Error Connecting to Camera %s.' %camera_number)
                
        utils.notify(utils.translation(32224))  #Service Started
        
        xbmc.executebuiltin('Container.Refresh')
        
        while not self.monitor.stopped() and not self.monitor.abortRequested():
            self.monitor.waitForAbort(1)

        if self.monitor.stopped() and not self.monitor.abortRequested():
            utils.notify(utils.translation(32225))  #Service Restarting
            self.restart()

        '''                             
                utils.dialog_ok(utils.translation(32218))
            else:
                utils.dialog_ok(utils.translation(32219))


    # Camera settings 
    elif action == 'camera_settings':
        window = camerasettings.CameraSettingsWindow(camera_number)
        window.doModal()
        del window
        utils.dialog_ok(utils.translation(32220))


    # Show Preview 
    elif action == 'show_preview':
        if settings.enabled_preview(camera_number):
            if settings.getSetting_int('cond_manual_toggle', camera_number) == 1 and monitor.previewOpened(camera_number):
                monitor.closeRequest(camera_number)
            else:
                monitor.openRequest_manual(camera_number)                
        else:
            utils.notify(utils.translation(32228))


    # Disable Preview 
    elif action == 'disable_preview':
        settings.setSetting('enabled_preview', camera_number, 'false')
        xbmc.executebuiltin('Container.Refresh')

        
    # Enable Preview 
            response = camera.reboot()
            if response[0] == 0:
                utils.dialog_ok(utils.translation(32218))
            else:
                utils.dialog_ok(utils.translation(32219))

    # Camera settings
    elif action == 'camera_settings':
        window = camerasettings.CameraSettingsWindow(camera_number)
        window.doModal()
        del window
        utils.dialog_ok(utils.translation(32220))

    # Show Preview
    elif action == 'show_preview':
        if settings.enabled_preview(camera_number):
            if settings.getSetting_int(
                    'cond_manual_toggle', camera_number
            ) == 1 and monitor.previewOpened(camera_number):
                monitor.closeRequest(camera_number)
            else:
                monitor.openRequest_manual(camera_number)
        else:
            utils.notify(utils.translation(32228))

    # Disable Preview
    elif action == 'disable_preview':
        settings.setSetting('enabled_preview', camera_number, 'false')
        xbmc.executebuiltin('Container.Refresh')

    # Enable Preview