/// <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); } }
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); }