private void SetKeySmooth(EffectLayer layer, DeviceKeys key, Color color)
        {
            if (!currentKeyColors.ContainsKey(key))
            {
                currentKeyColors[key] = Color.Empty;
            }

            KeyBlendState blendState = new KeyBlendState(currentKeyColors[key], color);

            if (keyBlendStates.ContainsKey(key))
            {
                if (!keyBlendStates[key].colorTo.Equals(color))
                {
                    blendState.colorFrom = keyBlendStates[key].GetBlendedColor();
                    keyBlendStates[key]  = blendState;
                }
            }
            else
            {
                keyBlendStates[key] = blendState;
            }

            keyBlendStates[key].Increment();
            if (keyBlendStates[key].Finished())
            {
                SetKey(layer, key, color);
            }
            else
            {
                layer.Set(key, keyBlendStates[key].GetBlendedColor());
            }
        }
 public bool Equals(KeyBlendState blendState)
 {
     return(colorFrom.Equals(blendState.colorFrom) && colorTo.Equals(blendState.colorTo));
 }