Exemplo n.º 1
0
 /// <summary>
 /// Fade multiple RGB-Values"
 /// </summary>
 /// <param name="oldValues">List of old values to fade from</param>
 /// <param name="newValues">List of new values to fade to</param>
 /// <param name="fade_time_ms">Time to sleep between each fade iteration</param>
 public void Fade(RGBValue[] oldValues, RGBValue[] newValues, int fade_time_ms = 50)
 {
     while (!RGBValue.Equals(oldValues, newValues) && _pauseEvent.WaitOne())
     {
         for (int i = 0; i < newValues.Length; i++)
         {
             oldValues[i] = GetNextFadeIteration(oldValues[i], newValues[i]);
         }
         _rgbOutput.ShowRGBs(oldValues);
         Thread.Sleep(fade_time_ms);
     }
 }
Exemplo n.º 2
0
        public override void showRGB(byte[] specArray, int min_slider, int max_slider, int min_trigger, bool absNotRel, RGBOutput.IRGBOutput rgbOutput)
        {
            if (min_trigger != 0)
            {
                for (int i = 0; i < specArray.Length; i++)
                {
                    specArray[i] = specArray[i] < min_trigger ? (byte)0 : specArray[i];
                }
                if (!absNotRel)
                {
                    for (int i = 0; i < specArray.Length; i++)
                    {
                        specArray[i] = rel_check(specArray[i], min_trigger);
                    }
                }
            }
            // TODO still neded?
            if (min_trigger < 0)
            {
                min_trigger = 1;
            }
            // TODO end
            m = 765 / (double)min_trigger;


            int new_amount_rgbs = rgbOutput.GetAmountRGBs();

            // In case the amount of RGBs changed create new array (usually if output changes)
            if (rgbs == null || amount_rgbs != new_amount_rgbs)
            {
                rgbs = new RGBValue[new_amount_rgbs];
                for (int led = 0; led < new_amount_rgbs; led++)
                {
                    rgbs[led] = new RGBValue();
                }
                amount_rgbs = new_amount_rgbs;
            }

            rgbs = my_callback(specArray, min_slider, max_slider, min_trigger);
            rgbOutput.ShowRGBs(rgbs);
        }