Ejemplo n.º 1
0
 async void SetLightColor(string iD, LightSequenceData lightSequenceData)
 {
     if (settingColorInternally || dragStarted)
     {
         return;
     }
     if (iD == BluetoothLights.Left_ID)
     {
         DmxLight.Left.SetColor(lightSequenceData.Hue, lightSequenceData.Saturation, lightSequenceData.Lightness);
         SetColorPicker(lightSequenceData, leftLight);
     }
     else if (iD == BluetoothLights.Right_ID)
     {
         DmxLight.Right.SetColor(lightSequenceData.Hue, lightSequenceData.Saturation, lightSequenceData.Lightness);
         SetColorPicker(lightSequenceData, rightLight);
     }
     else if (iD == BluetoothLights.Center_ID)
     {
         DmxLight.Center.SetColor(lightSequenceData.Hue, lightSequenceData.Saturation, lightSequenceData.Lightness);
         SetColorPicker(lightSequenceData, centerLight);
     }
     else
     {
         System.Diagnostics.Debugger.Break();                  // What Light is this?
     }
 }
Ejemplo n.º 2
0
 private void SetColorPicker(LightSequenceData lightSequenceData, FrmColorPicker colorPicker)
 {
     settingColorInternally = true;
     try
     {
         colorPicker.Hue        = (int)lightSequenceData.Hue;
         colorPicker.Saturation = (int)lightSequenceData.Saturation;
         colorPicker.Lightness  = (int)lightSequenceData.Lightness;
     }
     finally
     {
         settingColorInternally = false;
     }
 }
Ejemplo n.º 3
0
        public IEnumerable <LightSequenceData> Decompress()
        {
            const double             singleFrameDuration = 1d / 30d;
            const double             halfFrameDuration   = singleFrameDuration / 2d;
            List <LightSequenceData> result = new List <LightSequenceData>();
            double totalDuration            = Duration;

            while (totalDuration >= halfFrameDuration)
            {
                LightSequenceData lightSequenceData = new LightSequenceData()
                {
                    Hue = Hue, Saturation = Saturation, Lightness = Lightness, Duration = singleFrameDuration
                };
                result.Add(lightSequenceData);
                totalDuration -= singleFrameDuration;
            }
            return(result);
        }
Ejemplo n.º 4
0
        public Light Compress()
        {
            Light result = new Light()
            {
                ID = ID
            };
            LightSequenceData lastSequenceData = null;

            foreach (LightSequenceData lightSequenceData in SequenceData)
            {
                if (lastSequenceData == null || !lastSequenceData.SameColor(lightSequenceData))
                {
                    LightSequenceData clonedSequence = lightSequenceData.Clone();
                    result.SequenceData.Add(clonedSequence);
                    lastSequenceData = clonedSequence;
                }
                else
                {
                    lastSequenceData.Duration += lightSequenceData.Duration;
                }
            }
            return(result);
        }
Ejemplo n.º 5
0
        private static void FrameAnimator_RenderLights(object sender, RenderFrameEventArgs ea)
        {
            if (sender is FrameAnimator frameAnimator && frameAnimator.Data is Light light)
            {
                if (frameAnimator.FrameIndex >= light.SequenceData.Count)
                {
                    ea.ShouldStop = true;
                    return;
                }

                LightSequenceData lightData = light.SequenceData[frameAnimator.FrameIndex];

                DmxLight dmxLight = null;

                if (light.ID == BluetoothLights.Left_ID)
                {
                    dmxLight = DmxLight.Left;
                }
                else if (light.ID == BluetoothLights.Center_ID)
                {
                    dmxLight = DmxLight.Center;
                }
                else if (light.ID == BluetoothLights.Right_ID)
                {
                    dmxLight = DmxLight.Right;
                }

                if (dmxLight == null)
                {
                    return;
                }

                dmxLight.SetColor(lightData);
                //Task.Run(async () => await bluetoothLight.SetAsync(lightData.Hue, lightData.Saturation, lightData.Lightness));
                ea.Duration = lightData.Duration;
            }
        }
Ejemplo n.º 6
0
 public void SetColor(LightSequenceData lightData)
 {
     SetColor(lightData.Hue, lightData.Saturation, lightData.Lightness);
 }
Ejemplo n.º 7
0
 public bool SameColor(LightSequenceData lightSequenceData)
 {
     return(Hue == lightSequenceData.Hue &&
            Saturation == lightSequenceData.Saturation &&
            Lightness == lightSequenceData.Lightness);
 }