Exemplo n.º 1
0
    def apply_other_settings(self):            
        self.motion_enable = utils.get_bool_setting('motion_enable')
        self.sound_enable = utils.get_bool_setting('sound_enable')

        self.duration = utils.get_int_setting('preview_duration')
        self.scaling = utils.get_float_setting('preview_scaling')
        self.position = utils.get_setting('preview_position').lower()

        motion_trigger_interval = utils.get_int_setting('motion_trigger_interval')
        sound_trigger_interval = utils.get_int_setting('sound_trigger_interval')
        
        if self.motion_enable and self.sound_enable:
            self.trigger_interval = min(motion_trigger_interval, sound_trigger_interval)
        elif self.motion_enable:
            self.trigger_interval = motion_trigger_interval
        elif self.sound_enable:
            self.trigger_interval = sound_trigger_interval
        
        if self.motion_enable:
            command = self.camera.set_motion_detect_config()
            command['isEnable'] = 1
            command['sensitivity'] = utils.get_int_setting('motion_sensitivity')
            command['triggerInterval'] = motion_trigger_interval
            self.send_command(command)
            
        if self.sound_enable:
            command = self.camera.set_sound_detect_config()
            command['isEnable'] = 1
            command['sensitivity'] = utils.get_int_setting('sound_sensitivity')
            command['triggerInterval'] = sound_trigger_interval
            
            for iday in range(7):
                command['schedule{0:d}'.format(iday)] = 2**48 - 1
            self.send_command(command)
    def onPlayBackStarted(self):
        if utils.get_bool_setting("activity_enable") == False:
            return
        service = self.service
        # in the future we can either use a call-back pattern (if I can figure that out in python)
        # for multiple bridges that would allow the service logic (or a bridge-manager object) to fire events to all bridges
        playingFile = self.getPlayingFile()

        # Can't use "content" to determien the content as it shows to be unreliable (as of Jarvis b4)
        # content     = xbmc.getInfoLabel('Container.Content')
        content = determineContent(playingFile)
        utils.log_verbose("content: " + content + " file: " + playingFile)
        #for l in infolabels:
        #    ld = xbmc.getInfoLabel(l)
        #    if ld != "":
        #        utils.log_verbose(l + ": " + ld)
        
        if self.isPlaying :
            utils.log_verbose(content + ": " + playingFile)
            # activity references a scene or none

            if (content):
                if (content == "movie"):
                    return service.bridge.applyScene(getSceneByActivity("movie"))
                elif (content == "tv"):
                    return service.bridge.applyScene(getSceneByActivity("tv"))
                elif (content == "music"):
                    return service.bridge.applyScene(getSceneByActivity("music"))
                else:
                    return service.bridge.applyScene(getSceneByActivity("video"))
            else:
                return service.bridge.applyScene(getSceneByActivity("video"))
    def apply_basic_settings(self):
        global SCENES
        scenenames = SCENES.keys()
        labels = map(lambda x:x.lower(),scenenames)
        # Get the bridges
        self.bridge = LimitlessBridge(__addon__.getSetting("b0_host"),__addon__.getSetting("b0_port"))

        # Get the scenes
        #labels     =["normal","dimmed","reading","movie","tv","music"]
        #scenenames = ["Normal","Dimmed","Reading","Movie","TV","Music"]
        for label,scenename in zip (labels,scenenames):
            scene = LimitlessScene(scenename,0,False)
            for i in ("0","1","2","3","4"):
                enabled=utils.get_bool_setting("b0_l"+i+"_"+label+"_enable")
                if enabled:
                    color       = utils.get_setting("b0_l"+i+"_"+label+"_color")
                    brightness  = utils.get_setting("b0_l"+i+"_"+label+"_brightness")
                    light       = LimitlessLight(self.bridge,'rgbw',i,True,color,brightness)
                    utils.log_verbose("Settings: label: " + label + " scenename: " + scenename + " lights: " + str(light))
                    scene.addLight(light)
            SCENES[scenename] = scene
        for activity in ACTIVITIES.keys():
            # map activity to scenes
            activity_scene = utils.get_setting("activity_"+activity)
            ACTIVITIES[activity] = activity_scene
        utils.log_verbose("Enabled: " + utils.get_setting("activity_enable"))
        return True
Exemplo n.º 4
0
 def playVideo(self):
     self.player = utils.StopResumePlayer()
     self.player.maybe_stop_current()
     if utils.get_bool_setting('mjpeg'):
         camera.enable_mjpeg()
         url = camera.mjpeg_url
     else:
         url = camera.video_url
     self.player.play(url)
Exemplo n.º 5
0
 def playVideo(self):
     self.player = utils.StopResumePlayer()
     self.player.maybe_stop_current()
     if utils.get_bool_setting('mjpeg'):
         camera.enable_mjpeg()
         url = camera.mjpeg_url
     else:
         url = camera.video_url
     self.player.play(url)
Exemplo n.º 6
0
    def apply_other_settings(self):
        self.motion_enable = utils.get_bool_setting('motion_enable')
        self.sound_enable = utils.get_bool_setting('sound_enable')

        self.duration = utils.get_int_setting('preview_duration')
        self.scaling = utils.get_float_setting('preview_scaling')
        self.position = utils.get_setting('preview_position').lower()

        motion_trigger_interval = utils.get_int_setting(
            'motion_trigger_interval')
        sound_trigger_interval = utils.get_int_setting(
            'sound_trigger_interval')

        if self.motion_enable and self.sound_enable:
            self.trigger_interval = min(motion_trigger_interval,
                                        sound_trigger_interval)
        elif self.motion_enable:
            self.trigger_interval = motion_trigger_interval
        elif self.sound_enable:
            self.trigger_interval = sound_trigger_interval

        if self.motion_enable:
            command = self.camera.set_motion_detect_config()
            command['isEnable'] = 1
            command['sensitivity'] = utils.get_int_setting(
                'motion_sensitivity')
            command['triggerInterval'] = motion_trigger_interval
            self.send_command(command)

        if self.sound_enable:
            command = self.camera.set_sound_detect_config()
            command['isEnable'] = 1
            command['sensitivity'] = utils.get_int_setting('sound_sensitivity')
            command['triggerInterval'] = sound_trigger_interval

            for iday in range(7):
                command['schedule{0:d}'.format(iday)] = 2**48 - 1
            self.send_command(command)
 def __init__(self,scenename):
     utils.log_normal("Applying Scene: " + scenename)
     self.bridge = LimitlessBridge(addon.getSetting("b0_host"),addon.getSetting("b0_port"))
     scene = LimitlessScene(scenename,0,False)
     for i in ("0","1","2","3","4"):
         lowerscenename = scenename.lower()
         enabled=utils.get_bool_setting("b0_l"+i+"_"+lowerscenename+"_enable")
         if enabled:
             color       = utils.get_setting("b0_l"+i+"_"+lowerscenename+"_color")
             brightness  = utils.get_setting("b0_l"+i+"_"+lowerscenename+"_brightness")
             light       = LimitlessLight(self.bridge,'rgbw',i,True,color,brightness)
             utils.log_verbose("Settings: label: " + lowerscenename + " scenename: " + scenename + " lights: " + str(light))
             scene.addLight(light)
     self.bridge.applyScene(scene)
 def onPlayBackPaused(self):
     if utils.get_bool_setting("activity_enable"):
         return self.service.bridge.applyScene(getSceneByActivity("pause"))
 def onShutdown(self):
     if utils.get_bool_setting("activity_enable"):
         return self.service.bridge.applyScene(getSceneByActivity("shutdown"))
    dialog = xbmcgui.Dialog().ok("Activities Enabled","Scenes will be applied according to your activity settings")
def disabledDialog():
    dialog = xbmcgui.Dialog().ok("Activities Disabled","Scenes will be no loger be applied.  You may still manually control the scene.")

# Args:
# argv[1] (first argument)
#  "scene"   - will configure a named scene.  
#            - argv[2] - scene name ("TV","Movie","Normal","Off","Reading","Dimmed","Video","Music" etc.)
#  "toggle"  - will toggle activity handling state
#  "activity"- will set activity handling state
#            - argv[2] - "true"|"false"
#  "settings"- will open settings dialog
#  None      - will open an options dialog to allow user to choose the above capabilities
if __name__ == "__main__":
    count = len(sys.argv) - 1
    activityState = utils.get_bool_setting("activity_enable")
    currentState = "Enabled" if activityState else "Disabled"
    toggleState = "Disable" if activityState else "Enable"
    if count > 0:
        if sys.argv[1] == "scene":
            Main(sys.argv[2])
        elif sys.argv[1] == "toggle":
            val = "false" if activityState else "true"
            utils.set_setting("activity_enable",val)
            if val == "false":
                disabledDialog()
            else:
                enabledDialog()
        elif sys.argv[1] == "activity":
            val = "true"
            try: