Exemple #1
0
        private void UpdateDimmer()
        {
            if (TargetBrightness < 0)
            {
                return;
            }

            if (LampToy != null)
            {
                if (LampToy.Brightness == TargetBrightness)
                {
                    return;
                }

                TimeSpan SinceStart = (DateTime.Now - TargetSetTime);
                double   Fract      = SinceStart.TotalMilliseconds / DimmerDurationMs;

                if (Fract >= 1)
                {
                    LampToy.SetBrightness(TargetBrightness);
                    TargetBrightness = -1;
                }
                else
                {
                    LampToy.SetBrightness((StartBrightness + (int)((TargetBrightness - StartBrightness) * Fract)).Limit(0, 255));
                }
            }
        }
Exemple #2
0
 /// <summary>
 /// Finishes the <see cref="ILampToy"/>.
 /// </summary>
 public override void Finish()
 {
     if (LampToy != null)
     {
         LampToy.Reset();
         if (Timer != null)
         {
             Timer.UnregisterIntervalAlarm(UpdateDimmer);
         }
     }
     _LampToy = null;
     Timer    = null;
 }