1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

Updated K70 class to reflect the same working conditions for K95

This commit is contained in:
Logan Saso 2016-01-28 15:58:56 -08:00
parent 84523b47b4
commit 32315ebd11

View File

@ -2,7 +2,9 @@
using CUE.NET; using CUE.NET;
using CUE.NET.Devices.Generic.Enums; using CUE.NET.Devices.Generic.Enums;
using CUE.NET.Devices.Keyboard; using CUE.NET.Devices.Keyboard;
using CUE.NET.Brushes;
using CUE.NET.Devices.Keyboard.Keys;
namespace Artemis.KeyboardProviders.Corsair namespace Artemis.KeyboardProviders.Corsair
{ {
internal class K70 : KeyboardProvider internal class K70 : KeyboardProvider
@ -13,29 +15,52 @@ namespace Artemis.KeyboardProviders.Corsair
{ {
Name = "Corsair Gaming K70 RGB"; Name = "Corsair Gaming K70 RGB";
} }
/// <summary>
public override void Enable() /// Enables the SDK and sets updatemode to manual as well as the color of the background to black.
{ /// </summary>
_keyboard = CueSDK.KeyboardSDK; public override void Enable()
_keyboard.UpdateMode = UpdateMode.Manual; {
} try
{
public override void Disable() CueSDK.Initialize();
{ }
} catch (CUE.NET.Exceptions.WrapperException) {/*CUE is already initialized*/}
_keyboard = CueSDK.KeyboardSDK;
public override void DrawBitmap(Bitmap bitmap) _keyboard.UpdateMode = UpdateMode.Manual;
{ _keyboard.Brush = new SolidColorBrush(Color.Black);
// TODO: Resize bitmap to keyboard's size _keyboard.Update(true);
//if (bitmap.Width > width || bitmap.Height > height) }
// bitmap = ResizeImage(bitmap, width, height);
public override void Disable()
// One way of doing this, not sure at all if it's any good {
for (var y = 0; y < bitmap.Height - 1; y++) }
for (var x = 0; x < bitmap.Width - 1; x++)
_keyboard[new PointF(x, y)].Led.Color = bitmap.GetPixel(x, y); /// <summary>
/// Properly resizes any size bitmap to the keyboard by creating a rectangle whose size is dependent on the bitmap size.
_keyboard.Update(true); /// Does not reset the color each time. Uncomment line 48 for collor reset.
} /// </summary>
} /// <param name="bitmap"></param>
public override void DrawBitmap(Bitmap bitmap)
{
RectangleF[,] ledRectangles = new RectangleF[bitmap.Width, bitmap.Height];
RectangleKeyGroup[,] ledGroups = new RectangleKeyGroup[bitmap.Width, bitmap.Height];
//_keyboard.Brush = new SolidColorBrush(Color.Black);
for (var x = 0; x < bitmap.Width; x++)
{
for (var y = 0; y < bitmap.Height; y++)
{
ledRectangles[x, y] = new RectangleF(_keyboard.KeyboardRectangle.X * (x * (_keyboard.KeyboardRectangle.Width / bitmap.Width / _keyboard.KeyboardRectangle.X)), _keyboard.KeyboardRectangle.Y * (y * (_keyboard.KeyboardRectangle.Height / bitmap.Height / _keyboard.KeyboardRectangle.Y)), _keyboard.KeyboardRectangle.Width / bitmap.Width, _keyboard.KeyboardRectangle.Height / bitmap.Height);
ledGroups[x, y] = new RectangleKeyGroup(_keyboard, ledRectangles[x, y], 0.01f) { Brush = new SolidColorBrush(bitmap.GetPixel(x, y)) };
}
}
_keyboard.Update();
for (var x = 0; x < bitmap.Width; x++)
{
for (var y = 0; y < bitmap.Height; y++)
{
_keyboard.DetachKeyGroup(ledGroups[x, y]);
}
}
}
}
} }