protected override void SetFromIData(ILogicalDevice logicalDevice, IData data)
{
base.SetFromIData(logicalDevice, data);
if (data.ContainsKey(DataElements.ColorAmber) ||
data.ContainsKey(DataElements.ColorRGB) ||
data.ContainsKey(DataElements.ColorUltraViolet) ||
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.ColorAmber, out value))
componentAmber = ((double)value).GetByteScale();
if (data.TryGetValue(DataElements.ColorWhite, out value))
componentWhite = ((double)value).GetByteScale();
if (data.TryGetValue(DataElements.ColorUltraViolet, out value))
componentUV = ((double)value).GetByteScale();
}
else
{
var rgbaw = RgbConverter.GetRGBAW(this.colorBrightness.Color);
componentMaster = this.colorBrightness.Brightness.GetByteScale();
componentRed = rgbaw.R;
componentGreen = rgbaw.G;
componentBlue = rgbaw.B;
componentAmber = rgbaw.A;
componentWhite = rgbaw.W;
}
}