mirror of
https://github.com/DarthAffe/CUE.NET.git
synced 2025-12-13 09:08:34 +00:00
commit
21aca569ed
@ -51,6 +51,7 @@ namespace CUE.NET.Devices.Keyboard
|
|||||||
public CorsairKeyboardDeviceInfo KeyboardDeviceInfo { get; }
|
public CorsairKeyboardDeviceInfo KeyboardDeviceInfo { get; }
|
||||||
public RectangleF KeyboardRectangle { get; private set; }
|
public RectangleF KeyboardRectangle { get; private set; }
|
||||||
public IBrush Brush { get; set; }
|
public IBrush Brush { get; set; }
|
||||||
|
public int ZIndex { get; set; } = 0;
|
||||||
|
|
||||||
protected override bool HasEffect
|
protected override bool HasEffect
|
||||||
{
|
{
|
||||||
@ -89,13 +90,25 @@ namespace CUE.NET.Devices.Keyboard
|
|||||||
base.Update(flushLeds);
|
base.Update(flushLeds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UpdateKeyGroups()
|
||||||
|
{
|
||||||
|
if (Brush != null)
|
||||||
|
ApplyBrush(this.ToList(), Brush);
|
||||||
|
|
||||||
|
lock (_keyGroups)
|
||||||
|
{
|
||||||
|
foreach (IKeyGroup keyGroup in _keyGroups.OrderBy(x => x.ZIndex))
|
||||||
|
ApplyBrush(keyGroup.Keys.ToList(), keyGroup.Brush);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void UpdateEffects()
|
private void UpdateEffects()
|
||||||
{
|
{
|
||||||
List<IEffect> effectsToRemove = new List<IEffect>();
|
List<IEffect> effectsToRemove = new List<IEffect>();
|
||||||
lock (_effects)
|
lock (_effects)
|
||||||
{
|
{
|
||||||
long currentTicks = DateTime.Now.Ticks;
|
long currentTicks = DateTime.Now.Ticks;
|
||||||
foreach (EffectTimeContainer effect in _effects)
|
foreach (EffectTimeContainer effect in _effects.OrderBy(x => x.ZIndex))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -116,6 +129,7 @@ namespace CUE.NET.Devices.Keyboard
|
|||||||
if (effect.Effect.IsDone)
|
if (effect.Effect.IsDone)
|
||||||
effectsToRemove.Add(effect.Effect);
|
effectsToRemove.Add(effect.Effect);
|
||||||
}
|
}
|
||||||
|
// ReSharper disable once CatchAllClause
|
||||||
catch (Exception ex) { ManageException(ex); }
|
catch (Exception ex) { ManageException(ex); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -124,19 +138,6 @@ namespace CUE.NET.Devices.Keyboard
|
|||||||
DetachEffect(effect);
|
DetachEffect(effect);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateKeyGroups()
|
|
||||||
{
|
|
||||||
if (Brush != null)
|
|
||||||
ApplyBrush(this.ToList(), Brush);
|
|
||||||
|
|
||||||
lock (_keyGroups)
|
|
||||||
{
|
|
||||||
//TODO DarthAffe 20.09.2015: Add some sort of priority
|
|
||||||
foreach (IKeyGroup keyGroup in _keyGroups)
|
|
||||||
ApplyBrush(keyGroup.Keys.ToList(), keyGroup.Brush);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ReSharper disable once MemberCanBeMadeStatic.Local - idc
|
// ReSharper disable once MemberCanBeMadeStatic.Local - idc
|
||||||
private void ApplyBrush(ICollection<CorsairKey> keys, IBrush brush)
|
private void ApplyBrush(ICollection<CorsairKey> keys, IBrush brush)
|
||||||
{
|
{
|
||||||
@ -146,6 +147,7 @@ namespace CUE.NET.Devices.Keyboard
|
|||||||
foreach (CorsairKey key in keys)
|
foreach (CorsairKey key in keys)
|
||||||
key.Led.Color = brush.GetColorAtPoint(brushRectangle, key.KeyRectangle.GetCenter());
|
key.Led.Color = brush.GetColorAtPoint(brushRectangle, key.KeyRectangle.GetCenter());
|
||||||
}
|
}
|
||||||
|
// ReSharper disable once CatchAllClause
|
||||||
catch (Exception ex) { ManageException(ex); }
|
catch (Exception ex) { ManageException(ex); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -11,9 +11,11 @@ namespace CUE.NET.Devices.Keyboard.Effects
|
|||||||
{
|
{
|
||||||
#region Properties & Fields
|
#region Properties & Fields
|
||||||
|
|
||||||
|
public IEnumerable<CorsairKey> KeyList { get; protected set; }
|
||||||
|
|
||||||
public abstract IBrush EffectBrush { get; }
|
public abstract IBrush EffectBrush { get; }
|
||||||
|
|
||||||
public IEnumerable<CorsairKey> KeyList { get; protected set; }
|
public int ZIndex { get; set; } = 0;
|
||||||
|
|
||||||
public bool IsDone { get; protected set; }
|
public bool IsDone { get; protected set; }
|
||||||
|
|
||||||
|
|||||||
@ -11,6 +11,8 @@ namespace CUE.NET.Devices.Keyboard.Effects
|
|||||||
|
|
||||||
internal long TicksAtLastUpdate { get; set; }
|
internal long TicksAtLastUpdate { get; set; }
|
||||||
|
|
||||||
|
internal int ZIndex => Effect?.ZIndex ?? 0;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Constructors
|
#region Constructors
|
||||||
|
|||||||
@ -8,9 +8,11 @@ namespace CUE.NET.Devices.Keyboard.Effects
|
|||||||
{
|
{
|
||||||
#region Properties & Fields
|
#region Properties & Fields
|
||||||
|
|
||||||
|
IEnumerable<CorsairKey> KeyList { get; }
|
||||||
|
|
||||||
IBrush EffectBrush { get; }
|
IBrush EffectBrush { get; }
|
||||||
|
|
||||||
IEnumerable<CorsairKey> KeyList { get; }
|
int ZIndex { get; set; }
|
||||||
|
|
||||||
bool IsDone { get; }
|
bool IsDone { get; }
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,8 @@ namespace CUE.NET.Devices.Keyboard.Keys
|
|||||||
|
|
||||||
public IBrush Brush { get; set; }
|
public IBrush Brush { get; set; }
|
||||||
|
|
||||||
|
public int ZIndex { get; set; } = 0;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Constructors
|
#region Constructors
|
||||||
|
|||||||
@ -8,5 +8,7 @@ namespace CUE.NET.Devices.Keyboard.Keys
|
|||||||
IEnumerable<CorsairKey> Keys { get; }
|
IEnumerable<CorsairKey> Keys { get; }
|
||||||
|
|
||||||
IBrush Brush { get; set; }
|
IBrush Brush { get; set; }
|
||||||
|
|
||||||
|
int ZIndex { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user