mirror of
https://github.com/DarthAffe/CUE.NET.git
synced 2025-12-12 16:58:29 +00:00
Merge pull request #27 from DarthAffe/Development
Merge refactoring to resolve #26
This commit is contained in:
commit
3f2c9f18aa
@ -1,7 +1,7 @@
|
||||
using System.Drawing;
|
||||
using CUE.NET.Helper;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Brushes
|
||||
namespace CUE.NET.Brushes
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a basic brush.
|
||||
@ -1,6 +1,6 @@
|
||||
using System.Drawing;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Brushes
|
||||
namespace CUE.NET.Brushes
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a basic brush.
|
||||
@ -4,10 +4,10 @@
|
||||
// ReSharper disable AutoPropertyCanBeMadeGetOnly.Global
|
||||
|
||||
using System.Drawing;
|
||||
using CUE.NET.Devices.Keyboard.Brushes.Gradient;
|
||||
using CUE.NET.Gradients;
|
||||
using CUE.NET.Helper;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Brushes
|
||||
namespace CUE.NET.Brushes
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a brush drawing a linear gradient.
|
||||
@ -3,10 +3,10 @@
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using CUE.NET.Devices.Keyboard.Brushes.Gradient;
|
||||
using CUE.NET.Gradients;
|
||||
using CUE.NET.Helper;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Brushes
|
||||
namespace CUE.NET.Brushes
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a brush drawing a radial gradient around a center point.
|
||||
@ -2,7 +2,7 @@
|
||||
using System.Drawing;
|
||||
using CUE.NET.Helper;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Brushes
|
||||
namespace CUE.NET.Brushes
|
||||
{
|
||||
//TODO DarthAffe 30.09.2015: Like this the brush seems kinda useless. Think about making it cool.
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
using System.Drawing;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Brushes
|
||||
namespace CUE.NET.Brushes
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a brush drawing only a single color.
|
||||
@ -46,20 +46,20 @@
|
||||
<Compile Include="Devices\Generic\Enums\CorsairDeviceCaps.cs" />
|
||||
<Compile Include="Devices\Generic\Enums\CorsairDeviceType.cs" />
|
||||
<Compile Include="Devices\Generic\OnExceptionEventArgs.cs" />
|
||||
<Compile Include="Devices\Keyboard\Brushes\AbstractBrush.cs" />
|
||||
<Compile Include="Devices\Keyboard\Brushes\Gradient\AbstractGradient.cs" />
|
||||
<Compile Include="Devices\Keyboard\Brushes\Gradient\GradientStop.cs" />
|
||||
<Compile Include="Devices\Keyboard\Brushes\Gradient\IGradient.cs" />
|
||||
<Compile Include="Devices\Keyboard\Brushes\Gradient\RainbowGradient.cs" />
|
||||
<Compile Include="Devices\Keyboard\Brushes\IBrush.cs" />
|
||||
<Compile Include="Devices\Keyboard\Brushes\LinearGradientBrush.cs" />
|
||||
<Compile Include="Devices\Keyboard\Brushes\RadialGradientBrush.cs" />
|
||||
<Compile Include="Devices\Keyboard\Brushes\RandomColorBrush.cs" />
|
||||
<Compile Include="Devices\Keyboard\Brushes\SolidColorBrush.cs" />
|
||||
<Compile Include="Devices\Keyboard\Effects\AbstractEffect.cs" />
|
||||
<Compile Include="Devices\Keyboard\Effects\FlashEffect.cs" />
|
||||
<Compile Include="Devices\Keyboard\Effects\IEffect.cs" />
|
||||
<Compile Include="Devices\Keyboard\Effects\EffectTimeContainer.cs" />
|
||||
<Compile Include="Brushes\AbstractBrush.cs" />
|
||||
<Compile Include="Gradients\AbstractGradient.cs" />
|
||||
<Compile Include="Gradients\GradientStop.cs" />
|
||||
<Compile Include="Gradients\IGradient.cs" />
|
||||
<Compile Include="Gradients\RainbowGradient.cs" />
|
||||
<Compile Include="Brushes\IBrush.cs" />
|
||||
<Compile Include="Brushes\LinearGradientBrush.cs" />
|
||||
<Compile Include="Brushes\RadialGradientBrush.cs" />
|
||||
<Compile Include="Brushes\RandomColorBrush.cs" />
|
||||
<Compile Include="Brushes\SolidColorBrush.cs" />
|
||||
<Compile Include="Effects\AbstractEffect.cs" />
|
||||
<Compile Include="Effects\FlashEffect.cs" />
|
||||
<Compile Include="Effects\IEffect.cs" />
|
||||
<Compile Include="Effects\EffectTimeContainer.cs" />
|
||||
<Compile Include="Devices\Keyboard\Enums\CorsairLogicalKeyboardLayout.cs" />
|
||||
<Compile Include="Devices\Headset\Enums\CorsairHeadsetLedId.cs" />
|
||||
<Compile Include="Devices\Keyboard\Enums\CorsairKeyboardKeyId.cs" />
|
||||
@ -85,7 +85,7 @@
|
||||
<Compile Include="Devices\Mouse\CorsairMouse.cs" />
|
||||
<Compile Include="Devices\Keyboard\Extensions\KeyGroupExtension.cs" />
|
||||
<Compile Include="Helper\ColorHelper.cs" />
|
||||
<Compile Include="Devices\Keyboard\Brushes\Gradient\LinearGradient.cs" />
|
||||
<Compile Include="Gradients\LinearGradient.cs" />
|
||||
<Compile Include="Helper\GradientHelper.cs" />
|
||||
<Compile Include="Helper\RectangleHelper.cs" />
|
||||
<Compile Include="Native\_CorsairDeviceInfo.cs" />
|
||||
|
||||
@ -6,6 +6,7 @@ using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using CUE.NET.Devices.Generic.Enums;
|
||||
using CUE.NET.Effects;
|
||||
using CUE.NET.Native;
|
||||
|
||||
namespace CUE.NET.Devices.Generic
|
||||
@ -51,6 +52,11 @@ namespace CUE.NET.Devices.Generic
|
||||
/// </summary>
|
||||
protected abstract bool HasEffect { get; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
protected LinkedList<EffectTimeContainer> Effects { get; } = new LinkedList<EffectTimeContainer>();
|
||||
|
||||
private CancellationTokenSource _updateTokenSource;
|
||||
private CancellationToken _updateToken;
|
||||
private Task _updateTask;
|
||||
@ -146,11 +152,13 @@ namespace CUE.NET.Devices.Generic
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Perform an update for all dirty keys, or all keys if flushLeds is set to true.
|
||||
/// Performs an update for all dirty keys, or all keys if flushLeds is set to true.
|
||||
/// </summary>
|
||||
/// <param name="flushLeds">Specifies whether all keys (including clean ones) should be updated.</param>
|
||||
public virtual void Update(bool flushLeds = false)
|
||||
{
|
||||
UpdateEffects();
|
||||
|
||||
IList<KeyValuePair<int, CorsairLed>> ledsToUpdate = (flushLeds ? Leds : Leds.Where(x => x.Value.IsDirty)).ToList();
|
||||
|
||||
foreach (CorsairLed led in Leds.Values)
|
||||
@ -159,6 +167,48 @@ namespace CUE.NET.Devices.Generic
|
||||
UpdateLeds(ledsToUpdate);
|
||||
}
|
||||
|
||||
private void UpdateEffects()
|
||||
{
|
||||
List<IEffect> effectsToRemove = new List<IEffect>();
|
||||
lock (Effects)
|
||||
{
|
||||
long currentTicks = DateTime.Now.Ticks;
|
||||
foreach (EffectTimeContainer effect in Effects.OrderBy(x => x.ZIndex))
|
||||
{
|
||||
try
|
||||
{
|
||||
float deltaTime;
|
||||
if (effect.TicksAtLastUpdate < 0)
|
||||
{
|
||||
effect.TicksAtLastUpdate = currentTicks;
|
||||
deltaTime = 0f;
|
||||
}
|
||||
else
|
||||
deltaTime = (currentTicks - effect.TicksAtLastUpdate) / 10000000f;
|
||||
|
||||
effect.TicksAtLastUpdate = currentTicks;
|
||||
effect.Effect.Update(deltaTime);
|
||||
|
||||
ApplyEffect(effect.Effect);
|
||||
|
||||
if (effect.Effect.IsDone)
|
||||
effectsToRemove.Add(effect.Effect);
|
||||
}
|
||||
// ReSharper disable once CatchAllClause
|
||||
catch (Exception ex) { ManageException(ex); }
|
||||
}
|
||||
}
|
||||
|
||||
foreach (IEffect effect in effectsToRemove)
|
||||
DetachEffect(effect);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Applies the given effect to the device LEDs.
|
||||
/// </summary>
|
||||
/// <param name="effect">The effect to apply.</param>
|
||||
protected abstract void ApplyEffect(IEffect effect);
|
||||
|
||||
private static void UpdateLeds(ICollection<KeyValuePair<int, CorsairLed>> ledsToUpdate)
|
||||
{
|
||||
ledsToUpdate = ledsToUpdate.Where(x => x.Value.Color != Color.Transparent).ToList();
|
||||
@ -186,6 +236,53 @@ namespace CUE.NET.Devices.Generic
|
||||
Marshal.FreeHGlobal(ptr);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attaches the given effect.
|
||||
/// </summary>
|
||||
/// <param name="effect">The effect to attach.</param>
|
||||
/// <returns><c>true</c> if the effect could be attached; otherwise, <c>false</c>.</returns>
|
||||
public bool AttachEffect(IEffect effect)
|
||||
{
|
||||
bool retVal = false;
|
||||
lock (Effects)
|
||||
{
|
||||
if (effect != null && Effects.All(x => x.Effect != effect))
|
||||
{
|
||||
effect.OnAttach();
|
||||
Effects.AddLast(new EffectTimeContainer(effect, -1));
|
||||
retVal = true;
|
||||
}
|
||||
}
|
||||
|
||||
CheckUpdateLoop();
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Detaches the given effect.
|
||||
/// </summary>
|
||||
/// <param name="effect">The effect to detached.</param>
|
||||
/// <returns><c>true</c> if the effect could be detached; otherwise, <c>false</c>.</returns>
|
||||
public bool DetachEffect(IEffect effect)
|
||||
{
|
||||
bool retVal = false;
|
||||
lock (Effects)
|
||||
{
|
||||
if (effect != null)
|
||||
{
|
||||
EffectTimeContainer val = Effects.FirstOrDefault(x => x.Effect == effect);
|
||||
if (val != null)
|
||||
{
|
||||
effect.OnDetach();
|
||||
Effects.Remove(val);
|
||||
retVal = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
CheckUpdateLoop();
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles the needed event-calls for an exception.
|
||||
/// </summary>
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
namespace CUE.NET.Devices.Generic.Enums
|
||||
using CUE.NET.Effects;
|
||||
|
||||
namespace CUE.NET.Devices.Generic.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// Contains list of available update modes.
|
||||
@ -12,7 +14,7 @@
|
||||
|
||||
/// <summary>
|
||||
/// The device will perform automatic updates at the rate set in <see cref="CUE.NET.Devices.ICueDevice.UpdateFrequency" />
|
||||
/// as long as an <see cref="CUE.NET.Devices.Keyboard.Effects.IEffect" /> is attached.
|
||||
/// as long as an <see cref="IEffect" /> is attached.
|
||||
/// </summary>
|
||||
AutoOnEffect,
|
||||
|
||||
|
||||
@ -4,9 +4,11 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using CUE.NET.Devices.Generic;
|
||||
using CUE.NET.Devices.Headset.Enums;
|
||||
using CUE.NET.Effects;
|
||||
|
||||
namespace CUE.NET.Devices.Headset
|
||||
{
|
||||
@ -69,6 +71,13 @@ namespace CUE.NET.Devices.Headset
|
||||
|
||||
#region Methods
|
||||
|
||||
protected override void ApplyEffect(IEffect effect)
|
||||
{
|
||||
//TODO DarthAffe 18.10.2015: How should brushes be applied to headsets?
|
||||
foreach (CorsairLed led in effect.LedList)
|
||||
led.Color = effect.EffectBrush.GetColorAtPoint(new RectangleF(0, 0, 2, 2), new PointF(1, 1));
|
||||
}
|
||||
|
||||
private void InitializeLeds()
|
||||
{
|
||||
GetLed((int)CorsairHeadsetLedId.LeftLogo);
|
||||
|
||||
@ -9,11 +9,11 @@ using System.Collections.ObjectModel;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using CUE.NET.Brushes;
|
||||
using CUE.NET.Devices.Generic;
|
||||
using CUE.NET.Devices.Keyboard.Brushes;
|
||||
using CUE.NET.Devices.Keyboard.Effects;
|
||||
using CUE.NET.Devices.Keyboard.Enums;
|
||||
using CUE.NET.Devices.Keyboard.Keys;
|
||||
using CUE.NET.Effects;
|
||||
using CUE.NET.Helper;
|
||||
using CUE.NET.Native;
|
||||
|
||||
@ -76,7 +76,6 @@ namespace CUE.NET.Devices.Keyboard
|
||||
#endregion
|
||||
|
||||
private readonly LinkedList<IKeyGroup> _keyGroups = new LinkedList<IKeyGroup>();
|
||||
private readonly LinkedList<EffectTimeContainer> _effects = new LinkedList<EffectTimeContainer>();
|
||||
|
||||
private Dictionary<CorsairKeyboardKeyId, CorsairKey> _keys = new Dictionary<CorsairKeyboardKeyId, CorsairKey>();
|
||||
|
||||
@ -113,8 +112,8 @@ namespace CUE.NET.Devices.Keyboard
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (_effects)
|
||||
return _effects.Any();
|
||||
lock (Effects)
|
||||
return Effects.Any();
|
||||
}
|
||||
}
|
||||
|
||||
@ -148,7 +147,6 @@ namespace CUE.NET.Devices.Keyboard
|
||||
public override void Update(bool flushLeds = false)
|
||||
{
|
||||
UpdateKeyGroups();
|
||||
UpdateEffects();
|
||||
|
||||
// Perform 'real' update
|
||||
base.Update(flushLeds);
|
||||
@ -166,40 +164,13 @@ namespace CUE.NET.Devices.Keyboard
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateEffects()
|
||||
protected override void ApplyEffect(IEffect effect)
|
||||
{
|
||||
List<IEffect> effectsToRemove = new List<IEffect>();
|
||||
lock (_effects)
|
||||
{
|
||||
long currentTicks = DateTime.Now.Ticks;
|
||||
foreach (EffectTimeContainer effect in _effects.OrderBy(x => x.ZIndex))
|
||||
{
|
||||
try
|
||||
{
|
||||
float deltaTime;
|
||||
if (effect.TicksAtLastUpdate < 0)
|
||||
{
|
||||
effect.TicksAtLastUpdate = currentTicks;
|
||||
deltaTime = 0f;
|
||||
}
|
||||
else
|
||||
deltaTime = (currentTicks - effect.TicksAtLastUpdate) / 10000000f;
|
||||
if (effect == null) return;
|
||||
|
||||
effect.TicksAtLastUpdate = currentTicks;
|
||||
effect.Effect.Update(deltaTime);
|
||||
|
||||
ApplyBrush((effect.Effect.KeyList ?? this).ToList(), effect.Effect.EffectBrush);
|
||||
|
||||
if (effect.Effect.IsDone)
|
||||
effectsToRemove.Add(effect.Effect);
|
||||
}
|
||||
// ReSharper disable once CatchAllClause
|
||||
catch (Exception ex) { ManageException(ex); }
|
||||
}
|
||||
}
|
||||
|
||||
foreach (IEffect effect in effectsToRemove)
|
||||
DetachEffect(effect);
|
||||
//TODO DarthAffe 18.10.2015: This is really dirty and might have a really negative performance impact - find a better solution.
|
||||
IEnumerable<CorsairKey> keys = effect.LedList?.Select(x => this.FirstOrDefault(y => y.Led == x));
|
||||
ApplyBrush((keys ?? this).ToList(), effect.EffectBrush);
|
||||
}
|
||||
|
||||
// ReSharper disable once MemberCanBeMadeStatic.Local - idc
|
||||
@ -215,6 +186,11 @@ namespace CUE.NET.Devices.Keyboard
|
||||
catch (Exception ex) { ManageException(ex); }
|
||||
}
|
||||
|
||||
public IEnumerable<CorsairLed> GetLeds()
|
||||
{
|
||||
return this.Select(x => x.Led);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
@ -252,53 +228,6 @@ namespace CUE.NET.Devices.Keyboard
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attaches the given effect.
|
||||
/// </summary>
|
||||
/// <param name="effect">The effect to attach.</param>
|
||||
/// <returns><c>true</c> if the effect could be attached; otherwise, <c>false</c>.</returns>
|
||||
public bool AttachEffect(IEffect effect)
|
||||
{
|
||||
bool retVal = false;
|
||||
lock (_effects)
|
||||
{
|
||||
if (effect != null && _effects.All(x => x.Effect != effect))
|
||||
{
|
||||
effect.OnAttach();
|
||||
_effects.AddLast(new EffectTimeContainer(effect, -1));
|
||||
retVal = true;
|
||||
}
|
||||
}
|
||||
|
||||
CheckUpdateLoop();
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Detaches the given effect.
|
||||
/// </summary>
|
||||
/// <param name="effect">The effect to detached.</param>
|
||||
/// <returns><c>true</c> if the effect could be detached; otherwise, <c>false</c>.</returns>
|
||||
public bool DetachEffect(IEffect effect)
|
||||
{
|
||||
bool retVal = false;
|
||||
lock (_effects)
|
||||
{
|
||||
if (effect != null)
|
||||
{
|
||||
EffectTimeContainer val = _effects.FirstOrDefault(x => x.Effect == effect);
|
||||
if (val != null)
|
||||
{
|
||||
effect.OnDetach();
|
||||
_effects.Remove(val);
|
||||
retVal = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
CheckUpdateLoop();
|
||||
return retVal;
|
||||
}
|
||||
|
||||
private void InitializeKeys()
|
||||
{
|
||||
_CorsairLedPositions nativeLedPositions = (_CorsairLedPositions)Marshal.PtrToStructure(_CUESDK.CorsairGetLedPositions(), typeof(_CorsairLedPositions));
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using CUE.NET.Devices.Keyboard.Brushes;
|
||||
using System.Linq;
|
||||
using CUE.NET.Brushes;
|
||||
using CUE.NET.Devices.Generic;
|
||||
using CUE.NET.Devices.Keyboard.Extensions;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Keys
|
||||
@ -49,6 +51,15 @@ namespace CUE.NET.Devices.Keyboard.Keys
|
||||
this.Attach();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
public IEnumerable<CorsairLed> GetLeds()
|
||||
{
|
||||
return GetGroupKeys().Select(x => x.Led);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a list containing the keys from this group.
|
||||
/// </summary>
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using CUE.NET.Devices.Keyboard.Brushes;
|
||||
using CUE.NET.Brushes;
|
||||
using CUE.NET.Devices.Generic;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Keys
|
||||
{
|
||||
@ -19,5 +20,11 @@ namespace CUE.NET.Devices.Keyboard.Keys
|
||||
/// Gets or sets the z-index of this keygroup to allow ordering them before drawing. (lowest first) (default: 0)
|
||||
/// </summary>
|
||||
int ZIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets a list containing all LEDs of this group.
|
||||
/// </summary>
|
||||
/// <returns>The list containing all LEDs of this group.</returns>
|
||||
IEnumerable<CorsairLed> GetLeds();
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,12 +2,15 @@
|
||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||
// ReSharper disable UnusedMember.Global
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using CUE.NET.Devices.Generic;
|
||||
using CUE.NET.Devices.Mouse.Enums;
|
||||
using CUE.NET.Effects;
|
||||
using CUE.NET.Exceptions;
|
||||
|
||||
namespace CUE.NET.Devices.Mouse
|
||||
@ -72,6 +75,13 @@ namespace CUE.NET.Devices.Mouse
|
||||
|
||||
#region Methods
|
||||
|
||||
protected override void ApplyEffect(IEffect effect)
|
||||
{
|
||||
//TODO DarthAffe 18.10.2015: How should brushes be applied to mice?
|
||||
foreach (CorsairLed led in effect.LedList)
|
||||
led.Color = effect.EffectBrush.GetColorAtPoint(new RectangleF(0, 0, 2, 2), new PointF(1, 1));
|
||||
}
|
||||
|
||||
private void InitializeLeds()
|
||||
{
|
||||
switch (MouseDeviceInfo.PhysicalLayout)
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using CUE.NET.Devices.Keyboard.Brushes;
|
||||
using CUE.NET.Devices.Keyboard.Keys;
|
||||
using CUE.NET.Brushes;
|
||||
using CUE.NET.Devices.Generic;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Effects
|
||||
namespace CUE.NET.Effects
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a basic effect.
|
||||
@ -15,9 +14,9 @@ namespace CUE.NET.Devices.Keyboard.Effects
|
||||
#region Properties & Fields
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of keys to which the effect applies.
|
||||
/// Gets or sets the list of LEDSs to which the effect applies.
|
||||
/// </summary>
|
||||
public IEnumerable<CorsairKey> KeyList { get; protected set; }
|
||||
public IEnumerable<CorsairLed> LedList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the brush which is drawn by the effect.
|
||||
@ -38,15 +37,6 @@ namespace CUE.NET.Devices.Keyboard.Effects
|
||||
|
||||
#region Methods
|
||||
|
||||
/// <summary>
|
||||
/// Sets the list of keys to which the effect applies.
|
||||
/// </summary>
|
||||
/// <param name="keyGroup"></param>
|
||||
public void SetTarget(IKeyGroup keyGroup)
|
||||
{
|
||||
KeyList = keyGroup.Keys.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the effect.
|
||||
/// </summary>
|
||||
@ -54,13 +44,13 @@ namespace CUE.NET.Devices.Keyboard.Effects
|
||||
public abstract void Update(float deltaTime);
|
||||
|
||||
/// <summary>
|
||||
/// Hook which is called when the effect is attached to a keyboard.
|
||||
/// Hook which is called when the effect is attached to a device.
|
||||
/// </summary>
|
||||
public virtual void OnAttach()
|
||||
{ }
|
||||
|
||||
/// <summary>
|
||||
/// Hook which is called when the effect is detached from a keyboard.
|
||||
/// Hook which is called when the effect is detached from a device.
|
||||
/// </summary>
|
||||
public virtual void OnDetach()
|
||||
{ }
|
||||
@ -1,29 +1,29 @@
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
// ReSharper disable AutoPropertyCanBeMadeGetOnly.Global
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Effects
|
||||
namespace CUE.NET.Effects
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a wrapped effect with additional time information.
|
||||
/// </summary>
|
||||
internal class EffectTimeContainer
|
||||
public class EffectTimeContainer
|
||||
{
|
||||
#region Properties & Fields
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the wrapped effect.
|
||||
/// </summary>
|
||||
internal IEffect Effect { get; set; }
|
||||
public IEffect Effect { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the tick-count from the last time the effect was updated.
|
||||
/// </summary>
|
||||
internal long TicksAtLastUpdate { get; set; }
|
||||
public long TicksAtLastUpdate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the z-index of the effect.
|
||||
/// </summary>
|
||||
internal int ZIndex => Effect?.ZIndex ?? 0;
|
||||
public int ZIndex => Effect?.ZIndex ?? 0;
|
||||
|
||||
#endregion
|
||||
|
||||
@ -34,7 +34,7 @@ namespace CUE.NET.Devices.Keyboard.Effects
|
||||
/// </summary>
|
||||
/// <param name="effect">The wrapped effect.</param>
|
||||
/// <param name="ticksAtLastUpdate">The tick-count from the last time the effect was updated.</param>
|
||||
internal EffectTimeContainer(IEffect effect, long ticksAtLastUpdate)
|
||||
public EffectTimeContainer(IEffect effect, long ticksAtLastUpdate)
|
||||
{
|
||||
this.Effect = effect;
|
||||
this.TicksAtLastUpdate = ticksAtLastUpdate;
|
||||
@ -3,9 +3,9 @@
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using CUE.NET.Devices.Keyboard.Brushes;
|
||||
using CUE.NET.Brushes;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Effects
|
||||
namespace CUE.NET.Effects
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents an effect which allows to flash an brush by modifying his opacity.
|
||||
@ -1,8 +1,8 @@
|
||||
using System.Collections.Generic;
|
||||
using CUE.NET.Devices.Keyboard.Brushes;
|
||||
using CUE.NET.Devices.Keyboard.Keys;
|
||||
using CUE.NET.Brushes;
|
||||
using CUE.NET.Devices.Generic;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Effects
|
||||
namespace CUE.NET.Effects
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a basic effect.
|
||||
@ -12,9 +12,9 @@ namespace CUE.NET.Devices.Keyboard.Effects
|
||||
#region Properties & Fields
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of keys to which the effect applies.
|
||||
/// Gets or sets the list of LEDs to which the effect applies.
|
||||
/// </summary>
|
||||
IEnumerable<CorsairKey> KeyList { get; }
|
||||
IEnumerable<CorsairLed> LedList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the brush which is drawn by the effect.
|
||||
@ -42,12 +42,12 @@ namespace CUE.NET.Devices.Keyboard.Effects
|
||||
void Update(float deltaTime);
|
||||
|
||||
/// <summary>
|
||||
/// Hook which is called when the effect is attached to a keyboard.
|
||||
/// Hook which is called when the effect is attached to a device.
|
||||
/// </summary>
|
||||
void OnAttach();
|
||||
|
||||
/// <summary>
|
||||
/// Hook which is called when the effect is detached from a keyboard.
|
||||
/// Hook which is called when the effect is detached from a device.
|
||||
/// </summary>
|
||||
void OnDetach();
|
||||
|
||||
@ -4,7 +4,7 @@ using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Brushes.Gradient
|
||||
namespace CUE.NET.Gradients
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a basic gradient.
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
using System.Drawing;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Brushes.Gradient
|
||||
namespace CUE.NET.Gradients
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a stop on a gradient.
|
||||
@ -1,6 +1,6 @@
|
||||
using System.Drawing;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Brushes.Gradient
|
||||
namespace CUE.NET.Gradients
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a basic gradient.
|
||||
@ -1,7 +1,7 @@
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Brushes.Gradient
|
||||
namespace CUE.NET.Gradients
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a linear interpolated gradient with n stops.
|
||||
@ -3,7 +3,7 @@
|
||||
using System.Drawing;
|
||||
using CUE.NET.Helper;
|
||||
|
||||
namespace CUE.NET.Devices.Keyboard.Brushes.Gradient
|
||||
namespace CUE.NET.Gradients
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a rainbow gradient which circles through all color colors of the HUE-color-space.<br />
|
||||
Loading…
x
Reference in New Issue
Block a user