/// <summary> /// Set state on a single light /// </summary> /// <param name="light"></param> /// <param name="rgb"></param> /// <param name="brightness"></param> /// <param name="timeSpan"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public static void SetState(this StreamingLight light, RGBColor?rgb = null, double?brightness = null, TimeSpan timeSpan = default(TimeSpan), CancellationToken cancellationToken = default(CancellationToken)) { //Create a new transition for this light Transition transition = CreateTransition(rgb, brightness, timeSpan); light.Transitions.Add(transition); //Start the transition transition.Start(light.State.RGBColor, light.State.Brightness, cancellationToken); }
/// <summary> /// Get the multiplier for an effect on a light /// </summary> /// <param name="effect"></param> /// <param name="light"></param> /// <returns></returns> public static double?GetEffectStrengthMultiplier(this BaseEffect effect, StreamingLight light) { var distance = Distance(effect, light.LightLocation); double?multiplier = effect.Radius - distance; multiplier = multiplier > 1 ? 1 : multiplier; multiplier = multiplier < 0 ? null : multiplier; return(multiplier); }
/// <summary> /// /// </summary> /// <param name="light"></param> /// <param name="rgb"></param> /// <param name="timeSpan"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public static void SetColor(this StreamingLight light, RGBColor rgb, TimeSpan timeSpan = default(TimeSpan), CancellationToken cancellationToken = default(CancellationToken)) { light.SetState(rgb, null, timeSpan, cancellationToken); }
/// <summary> /// Brightness between 0 and 1 /// </summary> /// <param name="light"></param> /// <param name="brightness">between 0 and 1</param> /// <param name="timeSpan"></param> /// <param name="cancellationToken"></param> public static void SetBrightness(this StreamingLight light, double brightness, TimeSpan timeSpan = default(TimeSpan), CancellationToken cancellationToken = default(CancellationToken)) { light.SetState(null, brightness, timeSpan, cancellationToken); }
public HueUpdateQueue(IDeviceUpdateTrigger updateTrigger, string lightId, StreamingGroup group) : base(updateTrigger) { _light = group.First(l => l.Id == byte.Parse(lightId)); }