protected override void SetFromIData(ILogicalDevice logicalDevice, IData data)
{
base.SetFromIData(logicalDevice, data);
if (data.ContainsKey(DataElements.ColorRGB) ||
data.ContainsKey(DataElements.ColorWhite))
{
object value;
componentMaster = (this.colorBrightness.Brightness * (1 - Executor.Current.Blackout.Value)).GetByteScale();
Color colorRGB;
if (data.TryGetValue(DataElements.ColorRGB, out value))
colorRGB = (Color)value;
else
colorRGB = this.colorBrightness.Color;
componentRed = colorRGB.R;
componentGreen = colorRGB.G;
componentBlue = colorRGB.B;
//TODO: WhiteOut
if (data.TryGetValue(DataElements.ColorWhite, out value))
componentWhite = ((double)value).GetByteScale();
}
else
{
var rgbw = RgbConverter.GetRGBW(this.colorBrightness.Color);
componentMaster = this.colorBrightness.Brightness.GetByteScale();
componentRed = rgbw.R;
componentGreen = rgbw.G;
componentBlue = rgbw.B;
componentWhite = rgbw.W;
}
}