diff --git a/Artemis/Artemis/KeyboardProviders/Corsair/K70.cs b/Artemis/Artemis/KeyboardProviders/Corsair/K70.cs
index 1c9f2e719..1146be31e 100644
--- a/Artemis/Artemis/KeyboardProviders/Corsair/K70.cs
+++ b/Artemis/Artemis/KeyboardProviders/Corsair/K70.cs
@@ -2,6 +2,8 @@
using CUE.NET;
using CUE.NET.Devices.Generic.Enums;
using CUE.NET.Devices.Keyboard;
+using CUE.NET.Brushes;
+using CUE.NET.Devices.Keyboard.Keys;
namespace Artemis.KeyboardProviders.Corsair
{
@@ -13,29 +15,55 @@ namespace Artemis.KeyboardProviders.Corsair
{
Name = "Corsair Gaming K70 RGB";
}
-
+ ///
+ /// Enables the SDK and sets updatemode to manual as well as the color of the background to black.
+ ///
public override void Enable()
{
+ try
+ {
+ CueSDK.Initialize();
+ }
+ catch (CUE.NET.Exceptions.WrapperException) {/*CUE is already initialized*/}
_keyboard = CueSDK.KeyboardSDK;
+ Height = (int)_keyboard.KeyboardRectangle.Height;
+ Width = (int)_keyboard.KeyboardRectangle.Width;
+
_keyboard.UpdateMode = UpdateMode.Manual;
+ _keyboard.Brush = new SolidColorBrush(Color.Black);
+ _keyboard.Update(true);
}
public override void Disable()
{
}
+ ///
+ /// Properly resizes any size bitmap to the keyboard by creating a rectangle whose size is dependent on the bitmap size.
+ /// Does not reset the color each time. Uncomment line 48 for collor reset.
+ ///
+ ///
public override void DrawBitmap(Bitmap bitmap)
{
- // TODO: Resize bitmap to keyboard's size
- //if (bitmap.Width > width || bitmap.Height > height)
- // bitmap = ResizeImage(bitmap, width, height);
-
- // 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);
-
- _keyboard.Update(true);
+ 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]);
+ }
+ }
}
}
}
\ No newline at end of file
diff --git a/Artemis/Artemis/KeyboardProviders/Corsair/K95.cs b/Artemis/Artemis/KeyboardProviders/Corsair/K95.cs
index 686076ab7..b92da1f29 100644
--- a/Artemis/Artemis/KeyboardProviders/Corsair/K95.cs
+++ b/Artemis/Artemis/KeyboardProviders/Corsair/K95.cs
@@ -1,10 +1,9 @@
using System.Drawing;
using CUE.NET;
-using CUE.NET.Brushes;
using CUE.NET.Devices.Generic.Enums;
using CUE.NET.Devices.Keyboard;
+using CUE.NET.Brushes;
using CUE.NET.Devices.Keyboard.Keys;
-using CUE.NET.Exceptions;
namespace Artemis.KeyboardProviders.Corsair
{
@@ -18,7 +17,7 @@ namespace Artemis.KeyboardProviders.Corsair
}
///
- /// Enables the SDK and sets updatemode to manual as well as the color of the background to black.
+ /// Enables the SDK and sets updatemode to manual as well as the color of the background to black.
///
public override void Enable()
{
@@ -26,17 +25,14 @@ namespace Artemis.KeyboardProviders.Corsair
{
CueSDK.Initialize();
}
- catch (WrapperException)
- {
- /*CUE is already initialized*/
- }
+ catch (CUE.NET.Exceptions.WrapperException){/*CUE is already initialized*/}
_keyboard = CueSDK.KeyboardSDK;
- Height = (int) _keyboard.KeyboardRectangle.Height;
- Width = (int) _keyboard.KeyboardRectangle.Width;
+ Height = (int)_keyboard.KeyboardRectangle.Height;
+ Width = (int)_keyboard.KeyboardRectangle.Width;
_keyboard.UpdateMode = UpdateMode.Manual;
_keyboard.Brush = new SolidColorBrush(Color.Black);
- _keyboard.Update();
+ _keyboard.Update(true);
}
public override void Disable()
@@ -44,35 +40,31 @@ namespace Artemis.KeyboardProviders.Corsair
}
///
- /// Properly resizes any size bitmap to the keyboard by creating a rectangle whose size is dependent on the bitmap
- /// size.
- /// Does not reset the color each time. Uncomment line 48 for collor reset.
+ /// Properly resizes any size bitmap to the keyboard by creating a rectangle whose size is dependent on the bitmap size.
+ /// Does not reset the color each time. Uncomment line 48 for collor reset.
///
///
public override void DrawBitmap(Bitmap bitmap)
- {
- var ledRectangles = new RectangleF[bitmap.Width, bitmap.Height];
- var ledGroups = new RectangleKeyGroup[bitmap.Width, bitmap.Height];
+ {
+ 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++)
{
- 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.1f)
- {
- Brush = new SolidColorBrush(bitmap.GetPixel(x, y))
- };
+ _keyboard.DetachKeyGroup(ledGroups[x, y]);
}
}
- _keyboard.Update(true);
}
}
}
\ No newline at end of file