mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Added expirimental Pro S support
This commit is contained in:
parent
0a0cfa3442
commit
02dbdaf0e4
@ -322,6 +322,7 @@
|
|||||||
<Compile Include="DAL\ProfileProvider.cs" />
|
<Compile Include="DAL\ProfileProvider.cs" />
|
||||||
<Compile Include="DAL\SettingsProvider.cs" />
|
<Compile Include="DAL\SettingsProvider.cs" />
|
||||||
<Compile Include="DeviceProviders\CoolerMaster\MasterkeysProL.cs" />
|
<Compile Include="DeviceProviders\CoolerMaster\MasterkeysProL.cs" />
|
||||||
|
<Compile Include="DeviceProviders\CoolerMaster\MasterkeysProS.cs" />
|
||||||
<Compile Include="DeviceProviders\CoolerMaster\Utilities\CmSdk.cs" />
|
<Compile Include="DeviceProviders\CoolerMaster\Utilities\CmSdk.cs" />
|
||||||
<Compile Include="DeviceProviders\Corsair\CorsairMice.cs" />
|
<Compile Include="DeviceProviders\Corsair\CorsairMice.cs" />
|
||||||
<Compile Include="DeviceProviders\Corsair\CorsairHeadsets.cs" />
|
<Compile Include="DeviceProviders\Corsair\CorsairHeadsets.cs" />
|
||||||
@ -695,6 +696,7 @@
|
|||||||
<Compile Include="Properties\AssemblyInfo.cs">
|
<Compile Include="Properties\AssemblyInfo.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<None Include="Resources\Keyboards\masterkeys-pro-s.png" />
|
||||||
<None Include="Resources\Keyboards\masterkeys-pro-l.png" />
|
<None Include="Resources\Keyboards\masterkeys-pro-l.png" />
|
||||||
<Resource Include="Resources\Kottke Silkscreen License.txt" />
|
<Resource Include="Resources\Kottke Silkscreen License.txt" />
|
||||||
<None Include="Resources\lua-placeholder.lua" />
|
<None Include="Resources\lua-placeholder.lua" />
|
||||||
|
|||||||
@ -58,7 +58,7 @@ namespace Artemis.DeviceProviders.CoolerMaster
|
|||||||
using (var b = ImageUtilities.ResizeImage(bitmap, Width, Height))
|
using (var b = ImageUtilities.ResizeImage(bitmap, Width, Height))
|
||||||
{
|
{
|
||||||
// Create an empty matrix
|
// Create an empty matrix
|
||||||
var matrix = new COLOR_MATRIX {KeyColor = new KEY_COLOR[Height, Width]};
|
var matrix = new COLOR_MATRIX {KeyColor = new KEY_COLOR[6, 22]};
|
||||||
|
|
||||||
// Map the bytes to the matix
|
// Map the bytes to the matix
|
||||||
for (var x = 0; x < Width; x++)
|
for (var x = 0; x < Width; x++)
|
||||||
|
|||||||
@ -0,0 +1,91 @@
|
|||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Artemis.DAL;
|
||||||
|
using Artemis.DeviceProviders.CoolerMaster.Utilities;
|
||||||
|
using Artemis.DeviceProviders.Logitech.Utilities;
|
||||||
|
using Artemis.Properties;
|
||||||
|
using Artemis.Settings;
|
||||||
|
using Artemis.Utilities;
|
||||||
|
|
||||||
|
namespace Artemis.DeviceProviders.CoolerMaster
|
||||||
|
{
|
||||||
|
public class MasterkeysProS : KeyboardProvider
|
||||||
|
{
|
||||||
|
private GeneralSettings _generalSettings;
|
||||||
|
|
||||||
|
public MasterkeysProS()
|
||||||
|
{
|
||||||
|
Name = "CM Masterkeys Pro S";
|
||||||
|
Slug = "cm-masterkeys-pro-s";
|
||||||
|
|
||||||
|
CantEnableText = "Couldn't connect to your CM Masterkeys Pro S.\n" +
|
||||||
|
"Please check your cables and try updating your CM software.\n\n" +
|
||||||
|
"If needed, you can select a different keyboard in Artemis under settings.";
|
||||||
|
|
||||||
|
Height = 6;
|
||||||
|
Width = 17;
|
||||||
|
|
||||||
|
PreviewSettings = new PreviewSettings(683, 242, new Thickness(0, 0, 0, 0), Resources.masterkeys_pro_s);
|
||||||
|
_generalSettings = SettingsProvider.Load<GeneralSettings>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Disable()
|
||||||
|
{
|
||||||
|
CmSdk.EnableLedControl(false);
|
||||||
|
Thread.Sleep(500);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool CanEnable()
|
||||||
|
{
|
||||||
|
CmSdk.SetControlDevice(DEVICE_INDEX.DEV_MKeys_L);
|
||||||
|
|
||||||
|
// Doesn't seem reliable but better than nothing I suppose
|
||||||
|
return CmSdk.IsDevicePlug();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Enable()
|
||||||
|
{
|
||||||
|
CmSdk.SetControlDevice(DEVICE_INDEX.DEV_MKeys_S);
|
||||||
|
CmSdk.EnableLedControl(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void DrawBitmap(Bitmap bitmap)
|
||||||
|
{
|
||||||
|
// Resize the bitmap
|
||||||
|
using (var b = ImageUtilities.ResizeImage(bitmap, Width, Height))
|
||||||
|
{
|
||||||
|
// Create an empty matrix
|
||||||
|
var matrix = new COLOR_MATRIX { KeyColor = new KEY_COLOR[6, 22] };
|
||||||
|
|
||||||
|
// Map the bytes to the matix
|
||||||
|
for (var x = 0; x < Width; x++)
|
||||||
|
{
|
||||||
|
for (var y = 0; y < Height; y++)
|
||||||
|
{
|
||||||
|
var c = b.GetPixel(x, y);
|
||||||
|
matrix.KeyColor[y, x] = new KEY_COLOR(c.R, c.G, c.B);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send the matrix to the keyboard
|
||||||
|
CmSdk.SetAllLedColor(matrix);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override KeyMatch? GetKeyPosition(Keys keyCode)
|
||||||
|
{
|
||||||
|
switch (_generalSettings.Layout)
|
||||||
|
{
|
||||||
|
case "Qwerty":
|
||||||
|
return KeyMap.QwertyLayout.FirstOrDefault(k => k.KeyCode == keyCode);
|
||||||
|
case "Qwertz":
|
||||||
|
return KeyMap.QwertzLayout.FirstOrDefault(k => k.KeyCode == keyCode);
|
||||||
|
default:
|
||||||
|
return KeyMap.AzertyLayout.FirstOrDefault(k => k.KeyCode == keyCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -17,6 +17,7 @@ namespace Artemis.InjectionModules
|
|||||||
Bind<DeviceProvider>().To<G810>().InSingletonScope();
|
Bind<DeviceProvider>().To<G810>().InSingletonScope();
|
||||||
Bind<DeviceProvider>().To<BlackWidow>().InSingletonScope();
|
Bind<DeviceProvider>().To<BlackWidow>().InSingletonScope();
|
||||||
Bind<DeviceProvider>().To<MasterkeysProL>().InSingletonScope();
|
Bind<DeviceProvider>().To<MasterkeysProL>().InSingletonScope();
|
||||||
|
Bind<DeviceProvider>().To<MasterkeysProS>().InSingletonScope();
|
||||||
|
|
||||||
// Mice
|
// Mice
|
||||||
Bind<DeviceProvider>().To<CorsairMice>().InSingletonScope();
|
Bind<DeviceProvider>().To<CorsairMice>().InSingletonScope();
|
||||||
|
|||||||
10
Artemis/Artemis/Properties/Resources.Designer.cs
generated
10
Artemis/Artemis/Properties/Resources.Designer.cs
generated
@ -338,6 +338,16 @@ namespace Artemis.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap masterkeys_pro_s {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("masterkeys_pro_s", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -217,4 +217,7 @@
|
|||||||
<data name="masterkeys_pro_l" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="masterkeys_pro_l" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\Keyboards\masterkeys-pro-l.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\Keyboards\masterkeys-pro-l.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="masterkeys_pro_s" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Keyboards\masterkeys-pro-s.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
BIN
Artemis/Artemis/Resources/Keyboards/masterkeys-pro-s.png
Normal file
BIN
Artemis/Artemis/Resources/Keyboards/masterkeys-pro-s.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 162 KiB |
Loading…
x
Reference in New Issue
Block a user