You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
5.4 KiB

using System.Collections.Generic;
using System.Linq;
using ColoreKey = Colore.Effects.Keyboard.Key;
using FormsKey = System.Windows.Forms.Keys;
namespace ChromaController
{
internal class KeyConverter
{
private readonly Dictionary<ColoreKey, FormsKey> formsKeys = new Dictionary<ColoreKey, FormsKey>
{
{ColoreKey.A, FormsKey.A },
{ColoreKey.B, FormsKey.B },
{ColoreKey.C, FormsKey.C },
{ColoreKey.D, FormsKey.D },
{ColoreKey.E, FormsKey.E },
{ColoreKey.F, FormsKey.F },
{ColoreKey.G, FormsKey.G },
{ColoreKey.H, FormsKey.H },
{ColoreKey.I, FormsKey.I },
{ColoreKey.J, FormsKey.J },
{ColoreKey.K, FormsKey.K },
{ColoreKey.L, FormsKey.L },
{ColoreKey.M, FormsKey.M },
{ColoreKey.N, FormsKey.N },
{ColoreKey.O, FormsKey.O },
{ColoreKey.P, FormsKey.P },
{ColoreKey.Q, FormsKey.Q },
{ColoreKey.R, FormsKey.R },
{ColoreKey.S, FormsKey.S },
{ColoreKey.T, FormsKey.T },
{ColoreKey.U, FormsKey.U },
{ColoreKey.V, FormsKey.V },
{ColoreKey.W, FormsKey.W },
{ColoreKey.X, FormsKey.X },
{ColoreKey.Y, FormsKey.Y },
{ColoreKey.Z, FormsKey.Z },
{ColoreKey.D0, FormsKey.D0 },
{ColoreKey.D1, FormsKey.D1 },
{ColoreKey.D2, FormsKey.D2 },
{ColoreKey.D3, FormsKey.D3 },
{ColoreKey.D4, FormsKey.D4 },
{ColoreKey.D5, FormsKey.D5 },
{ColoreKey.D6, FormsKey.D6 },
{ColoreKey.D7, FormsKey.D7 },
{ColoreKey.D8, FormsKey.D8 },
{ColoreKey.D9, FormsKey.D9 },
{ColoreKey.Num0, FormsKey.NumPad0 },
{ColoreKey.Num1, FormsKey.NumPad1 },
{ColoreKey.Num2, FormsKey.NumPad2 },
{ColoreKey.Num3, FormsKey.NumPad3 },
{ColoreKey.Num4, FormsKey.NumPad4 },
{ColoreKey.Num5, FormsKey.NumPad5 },
{ColoreKey.Num6, FormsKey.NumPad6 },
{ColoreKey.Num7, FormsKey.NumPad7 },
{ColoreKey.Num8, FormsKey.NumPad8 },
{ColoreKey.Num9, FormsKey.NumPad9 },
{ColoreKey.F1, FormsKey.F1 },
{ColoreKey.F2, FormsKey.F2 },
{ColoreKey.F3, FormsKey.F3 },
{ColoreKey.F4, FormsKey.F4 },
{ColoreKey.F5, FormsKey.F5 },
{ColoreKey.F6, FormsKey.F6 },
{ColoreKey.F7, FormsKey.F7 },
{ColoreKey.F8, FormsKey.F8 },
{ColoreKey.F9, FormsKey.F9 },
{ColoreKey.F10, FormsKey.F10 },
{ColoreKey.F11, FormsKey.F11 },
{ColoreKey.F12, FormsKey.F12 },
{ColoreKey.NumDivide, FormsKey.Divide },
{ColoreKey.NumMultiply, FormsKey.Multiply },
{ColoreKey.NumSubtract, FormsKey.Subtract },
{ColoreKey.NumAdd, FormsKey.Add },
{ColoreKey.NumDecimal, FormsKey.Decimal },
{ColoreKey.NumEnter, FormsKey.Enter },
{ColoreKey.NumLock, FormsKey.NumLock },
{ColoreKey.Escape, FormsKey.Escape },
{ColoreKey.PrintScreen, FormsKey.PrintScreen },
{ColoreKey.Scroll, FormsKey.Scroll },
{ColoreKey.Pause, FormsKey.Pause },
{ColoreKey.Insert, FormsKey.Insert },
{ColoreKey.Home, FormsKey.Home },
{ColoreKey.PageUp, FormsKey.PageUp },
{ColoreKey.PageDown, FormsKey.PageDown },
{ColoreKey.Delete, FormsKey.Delete },
{ColoreKey.End, FormsKey.End },
{ColoreKey.OemTilde, FormsKey.Oemtilde },
{ColoreKey.Tab, FormsKey.Tab },
{ColoreKey.CapsLock, FormsKey.CapsLock },
{ColoreKey.LeftShift, FormsKey.LShiftKey },
{ColoreKey.RightShift, FormsKey.RShiftKey },
{ColoreKey.LeftControl, FormsKey.LControlKey },
{ColoreKey.RightControl, FormsKey.RControlKey },
{ColoreKey.LeftWindows, FormsKey.LWin },
{ColoreKey.LeftAlt, FormsKey.Alt },
{ColoreKey.Space, FormsKey.Space },
{ColoreKey.Backspace, FormsKey.Back },
{ColoreKey.Up, FormsKey.Up },
{ColoreKey.Down, FormsKey.Down },
{ColoreKey.Left, FormsKey.Left },
{ColoreKey.Right, FormsKey.Right },
{ColoreKey.OemLeftBracket, FormsKey.OemOpenBrackets },
{ColoreKey.OemRightBracket, FormsKey.OemCloseBrackets },
{ColoreKey.OemComma, FormsKey.Oemcomma },
{ColoreKey.OemPeriod, FormsKey.OemPeriod },
{ColoreKey.KorPipe, FormsKey.OemPipe },
{ColoreKey.OemSemicolon, FormsKey.OemSemicolon},
{ColoreKey.OemApostrophe, FormsKey.OemQuotes },
{ColoreKey.OemSlash, FormsKey.OemQuestion },
};
private readonly Dictionary<FormsKey, ColoreKey> coloreKeys = new Dictionary<FormsKey, ColoreKey>();
public KeyConverter()
{
coloreKeys = formsKeys.ToDictionary(x => x.Value, x => x.Key);
}
public ColoreKey ToColoreKey(FormsKey key)
{
return coloreKeys[key];
}
public FormsKey ToFormsKey(ColoreKey key)
{
return formsKeys[key];
}
}
}