This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
using PIEHidNetCore;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace PamhagenSysCtrl.Helpers {
|
||||
public class Xbe24Keyboard : IDisposable, PIEDataHandler, PIEErrorHandler {
|
||||
@@ -11,6 +11,21 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
public readonly bool GetKey(int n) => (Rows[n / 6] & (1 << (n % 6))) != 0;
|
||||
}
|
||||
|
||||
public static readonly Color DefaltBacklight = Color.FromArgb(3, 3, 3);
|
||||
public static readonly Color Neutral = Color.FromArgb(4, 4, 4);
|
||||
public static readonly Color Red = Color.FromArgb(255, 0, 0);
|
||||
public static readonly Color Green = Color.FromArgb(0, 255, 0);
|
||||
public static readonly Color Blue = Color.FromArgb(0, 0, 255);
|
||||
public static readonly Color Yellow = Color.FromArgb(255, 255, 0);
|
||||
public static readonly Color Magenta = Color.FromArgb(255, 0, 255);
|
||||
public static readonly Color Cyan = Color.FromArgb(0, 255, 255);
|
||||
public static readonly Color Orange = Color.FromArgb(255, 32, 0);
|
||||
public static readonly Color DarkPurple = Color.FromArgb(128, 0, 128);
|
||||
public static readonly Color Purple = Color.FromArgb(255, 64, 255);
|
||||
public static readonly Color LightRed = Color.FromArgb(32, 4, 4);
|
||||
public static readonly Color LightGreen = Color.FromArgb(4, 32, 4);
|
||||
public static readonly Color LightBlue = Color.FromArgb(4, 4, 32);
|
||||
|
||||
protected readonly PIEDevice XbeDevice;
|
||||
|
||||
private KeyState LastKeyState = new(new byte[4]);
|
||||
@@ -21,6 +36,7 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
public event EventHandler<int>? KeyDown;
|
||||
public event EventHandler<int>? KeyUp;
|
||||
public event EventHandler<KeyState>? KeysChanged;
|
||||
public event EventHandler<int>? Error;
|
||||
|
||||
public Xbe24Keyboard(int pid = 0x0555) {
|
||||
foreach (var device in PIEDevice.EnumeratePIE()) {
|
||||
@@ -40,12 +56,12 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
if ((res = XbeDevice.SetErrorCallback(this)) != 0)
|
||||
throw new IOException($"Unable to SetErrorCallback for XBE keyboard: {res}");
|
||||
|
||||
SetBacklight(Color.FromRgb(1, 1, 1));
|
||||
SetBacklight(DefaltBacklight);
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
GC.SuppressFinalize(this);
|
||||
SetBacklight(Color.FromRgb(1, 1, 1));
|
||||
SetBacklight(DefaltBacklight);
|
||||
XbeDevice?.CloseInterface();
|
||||
}
|
||||
|
||||
@@ -61,7 +77,7 @@ namespace PamhagenSysCtrl.Helpers {
|
||||
public void HandlePIEHidError(PIEDevice sourceDevice, int error) {
|
||||
if (sourceDevice != XbeDevice)
|
||||
return;
|
||||
// TODO
|
||||
Error?.Invoke(this, error);
|
||||
}
|
||||
|
||||
protected void HandleKeyStateChange(KeyState current, KeyState last) {
|
||||
|
||||
Reference in New Issue
Block a user