Пример #1
0
def read_settings():
    settings_storage['disable_connection_message'] = ADDON.getSettingBool(
        "disableConnectionMessage")
    settings_storage['reloadFlash'] = ADDON.getSettingBool("reloadFlash")
    settings_storage['initialFlash'] = ADDON.getSettingBool("initialFlash")
    settings_storage['forceOnSunset'] = ADDON.getSettingBool("forceOnSunset")
    settings_storage['daylightDisable'] = ADDON.getSettingBool(
        "daylightDisable")
    cache.set("script.service.hue.daylightDisable",
              ADDON.getSettingBool("daylightDisable"))

    settings_storage['enableSchedule'] = ADDON.getSettingBool("enableSchedule")
    settings_storage['startTime'] = ADDON.getSetting(
        "startTime")  # string HH:MM
    settings_storage['endTime'] = ADDON.getSetting("endTime")  # string HH:MM
    settings_storage['disableConnectionMessage'] = ADDON.getSettingBool(
        "disableConnectionMessage")

    settings_storage['videoMinimumDuration'] = ADDON.getSettingInt(
        "video_MinimumDuration"
    )  # Setting in Minutes. Kodi library uses seconds, needs to be converted.
    settings_storage['video_enableMovie'] = ADDON.getSettingBool("video_Movie")
    settings_storage['video_enableMusicVideo'] = ADDON.getSettingBool(
        "video_MusicVideo")
    settings_storage['video_enableEpisode'] = ADDON.getSettingBool(
        "video_Episode")
    settings_storage['video_enableOther'] = ADDON.getSettingBool("video_Other")

    settings_storage['ambiEnabled'] = ADDON.getSettingBool("group3_enabled")
    settings_storage['show500Error'] = ADDON.getSettingBool("show500Error")
    _validate_schedule()
    _validate_ambilight()
Пример #2
0
    def check_video_activation(self, info_tag):
        try:
            duration = info_tag.getDuration(
            ) / 60  # returns seconds, convert to minutes
            media_type = info_tag.getMediaType()
            file_name = info_tag.getFile()
            if not file_name and self.isPlayingVideo():
                file_name = self.getPlayingFile()
            #
            # if not fileName and previousFileName:
            #     fileName = previousFileName
            # elif fileName:
            #     previousFileName = fileName

            # xbmc.log("[script.service.hue] InfoTag contents: duration: {}, mediaType: {}, file: {}".format(duration, mediaType, fileName))
        except (AttributeError, TypeError) as exc:
            xbmc.log("[script.service.hue] Can't read infoTag {exc}")
            return False
        # xbmc.log("Video Activation settings({}): minDuration: {}, Movie: {}, Episode: {}, MusicVideo: {}, PVR : {}, Other: {}".format(self.light_group_id, settings_storage['videoMinimumDuration'], settings_storage['video_enableMovie'],
        #                settings_storage['video_enableEpisode'], settings_storage['video_enableMusicVideo'], settings_storage['video_enablePVR'], settings_storage['video_enableOther']))
        # xbmc.log("[script.service.hue] Video Activation ({}): Duration: {}, mediaType: {}, ispvr: {}".format(self.light_group_id, duration, mediaType, fileName[0:3] == "pvr"))
        if ((duration >= ADDON.getSettingInt("video_MinimumDuration")
             or file_name[0:3] == "pvr") and
            ((ADDON.getSettingBool("video_Movie") and media_type == "movie") or
             (ADDON.getSettingBool("video_Episode")
              and media_type == "episode") or
             (ADDON.getSettingBool("video_MusicVideo")
              and media_type == "MusicVideo") or
             (ADDON.getSettingBool("video_PVR") and file_name[0:3] == "pvr") or
             (ADDON.getSettingBool("video_Other") and media_type != "movie"
              and media_type != "episode" and media_type != "MusicVideo"
              and file_name[0:3] != "pvr"))):
            xbmc.log("[script.service.hue] Video activation: True")
            return True
        xbmc.log("[script.service.hue] Video activation: False")
        return False
Пример #3
0
    def __init__(self,
                 light_group_id,
                 hue_connection,
                 initial_state=STATE_STOPPED,
                 video_info_tag=xbmc.InfoTagVideo):
        self.hue_connection = hue_connection
        self.light_group_id = light_group_id
        self.bridge = hue_connection.bridge
        self.monitor = hue_connection.monitor
        self.group0 = self.bridge.groups[0]
        self.bridge_error500 = 0
        self.state = initial_state
        self.enabled = ADDON.getSettingBool(
            f"group{self.light_group_id}_enabled")

        self.saved_light_states = {}
        self.video_info_tag = video_info_tag

        self.image_process = imageprocess.ImageProcess()

        self.converterA = Converter(GamutA)
        self.converterB = Converter(GamutB)
        self.converterC = Converter(GamutC)
        self.helper = ColorHelper(
            GamutC)  # Gamut doesn't matter for this usage

        self.enabled = ADDON.getSettingBool(
            f"group{self.light_group_id}_enabled")

        self.transition_time = int(
            ADDON.getSettingInt(f"group{self.light_group_id}_TransitionTime") /
            100
        )  # This is given as a multiple of 100ms and defaults to 4 (400ms). transition_time:10 will make the transition last 1 second.
        self.force_on = ADDON.getSettingBool(
            f"group{self.light_group_id}_forceOn")
        self.disable_labs = ADDON.getSettingBool(
            f"group{self.light_group_id}_disableLabs")
        self.min_bri = ADDON.getSettingInt(
            f"group{self.light_group_id}_MinBrightness"
        ) * 255 / 100  # convert percentage to value 1-254
        self.max_bri = ADDON.getSettingInt(
            f"group{self.light_group_id}_MaxBrightness"
        ) * 255 / 100  # convert percentage to value 1-254
        self.saturation = ADDON.getSettingNumber(
            f"group{self.light_group_id}_Saturation")
        self.capture_size_x = ADDON.getSettingInt(
            f"group{self.light_group_id}_CaptureSize")
        self.resume_state = ADDON.getSettingBool(
            f"group{self.light_group_id}_ResumeState")
        self.resume_transition = ADDON.getSettingInt(
            f"group{self.light_group_id}_ResumeTransition"
        ) * 10  # convert seconds to multiple of 100ms

        self.update_interval = ADDON.getSettingInt(
            f"group{self.light_group_id}_Interval"
        ) / 1000  # convert MS to seconds
        if self.update_interval == 0:
            self.update_interval = 0.1

        if self.enabled:
            self.ambi_lights = {}
            light_ids = ADDON.getSetting(
                f"group{self.light_group_id}_Lights").split(",")
            index = 0

            if len(light_ids) > 0:
                for L in light_ids:
                    gamut = self._get_light_gamut(self.bridge, L)
                    light = {
                        L: {
                            'gamut': gamut,
                            'prev_xy': (0, 0),
                            "index": index
                        }
                    }
                    self.ambi_lights.update(light)
                    index = index + 1

                super(xbmc.Player).__init__()