Reorganized project into a (hopefully) better structure

This commit is contained in:
DarthAffe committed 2015-09-19 16:24:14 +02:00
1 parent ce4e80c24b
commit fc66ac0ceb
33 files changed
+111 -99

No files matched your search

+29
View File
@@ -0,0 +1,29 @@
using CUE.NET.Devices.Generic;
using CUE.NET.Devices.Keyboard.Enums;
namespace CUE.NET.Devices.Keyboard
{
public class CorsairKey
{
#region Properties & Fields
public CorsairKeyboardKeyId KeyId { get; }
public CorsairLed Led { get; }
#endregion
#region Constructors
internal CorsairKey(CorsairKeyboardKeyId keyId, CorsairLed led)
{
this.KeyId = keyId;
this.Led = led;
}
#endregion
#region Methods
#endregion
}
}
+45
View File
@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using CUE.NET.Devices.Generic;
using CUE.NET.Devices.Keyboard.Enums;
namespace CUE.NET.Devices.Keyboard
{
public class CorsairKeyboard : AbstractCueDevice
{
#region Properties & Fields
public CorsairKeyboardDeviceInfo KeyboardDeviceInfo { get; }
private Dictionary<CorsairKeyboardKeyId, CorsairKey> _keys = new Dictionary<CorsairKeyboardKeyId, CorsairKey>();
public CorsairKey this[CorsairKeyboardKeyId keyId]
{
get { return this._keys[keyId]; }
private set { throw new NotSupportedException(); }
}
#endregion
#region Constructors
internal CorsairKeyboard(CorsairKeyboardDeviceInfo info)
: base(info)
{
this.KeyboardDeviceInfo = info;
this.InitializeKeys();
}
#endregion
#region Methods
private void InitializeKeys()
{
foreach (CorsairKeyboardKeyId keyId in Enum.GetValues(typeof(CorsairKeyboardKeyId)))
this._keys.Add(keyId, new CorsairKey(keyId, this.GetLed((int)keyId)));
}
#endregion
}
}
@@ -0,0 +1,41 @@
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
using CUE.NET.Devices.Generic;
using CUE.NET.Devices.Keyboard.Enums;
using CUE.NET.Native;
namespace CUE.NET.Devices.Keyboard
{
public class CorsairKeyboardDeviceInfo : GenericDeviceInfo
{
#region Properties & Fields
/// <summary>
/// Physical layout of the keyboard.
/// </summary>
public CorsairPhysicalKeyboardLayout PhysicalLayout { get; private set; }
/// <summary>
/// Logical layout of the keyboard as set in CUE settings.
/// </summary>
public CorsairLogicalKeyboardLayout LogicalLayout { get; private set; }
#endregion
#region Constructors
/// <summary>
/// Internal constructor of managed CorsairDeviceInfo.
/// </summary>
/// <param name="nativeInfo">The native CorsairDeviceInfo-struct</param>
internal CorsairKeyboardDeviceInfo(_CorsairDeviceInfo nativeInfo)
: base(nativeInfo)
{
this.PhysicalLayout = (CorsairPhysicalKeyboardLayout)nativeInfo.physicalLayout;
this.LogicalLayout = (CorsairLogicalKeyboardLayout)nativeInfo.logicalLayout;
}
#endregion
}
}
@@ -0,0 +1,157 @@
// ReSharper disable UnusedMember.Global
// ReSharper disable InconsistentNaming
namespace CUE.NET.Devices.Keyboard.Enums
{
public enum CorsairKeyboardKeyId
{
Escape = 1,
F1 = 2,
F2 = 3,
F3 = 4,
F4 = 5,
F5 = 6,
F6 = 7,
F7 = 8,
F8 = 9,
F9 = 10,
F10 = 11,
F11 = 12,
GraveAccentAndTilde = 13,
D1 = 14,
D2 = 15,
D3 = 16,
D4 = 17,
D5 = 18,
D6 = 19,
D7 = 20,
D8 = 21,
D9 = 22,
D0 = 23,
MinusAndUnderscore = 24,
Tab = 25,
Q = 26,
W = 27,
E = 28,
R = 29,
T = 30,
Y = 31,
U = 32,
I = 33,
O = 34,
P = 35,
BracketLeft = 36,
CapsLock = 37,
A = 38,
S = 39,
D = 40,
F = 41,
G = 42,
H = 43,
J = 44,
K = 45,
L = 46,
SemicolonAndColon = 47,
ApostropheAndDoubleQuote = 48,
LeftShift = 49,
NonUsBackslash = 50,
Z = 51,
X = 52,
C = 53,
V = 54,
B = 55,
N = 56,
M = 57,
CommaAndLessThan = 58,
PeriodAndBiggerThan = 59,
SlashAndQuestionMark = 60,
LeftCtrl = 61,
LeftGui = 62,
LeftAlt = 63,
Lang2 = 64,
Space = 65,
Lang1 = 66,
International2 = 67,
RightAlt = 68,
RightGui = 69,
Application = 70,
LedProgramming = 71,
Brightness = 72,
F12 = 73,
PrintScreen = 74,
ScrollLock = 75,
PauseBreak = 76,
Insert = 77,
Home = 78,
PageUp = 79,
BracketRight = 80,
Backslash = 81,
NonUsTilde = 82,
Enter = 83,
International1 = 84,
EqualsAndPlus = 85,
International3 = 86,
Backspace = 87,
Delete = 88,
End = 89,
PageDown = 90,
RightShift = 91,
RightCtrl = 92,
UpArrow = 93,
LeftArrow = 94,
DownArrow = 95,
RightArrow = 96,
WinLock = 97,
Mute = 98,
Stop = 99,
ScanPreviousTrack = 100,
PlayPause = 101,
ScanNextTrack = 102,
NumLock = 103,
KeypadSlash = 104,
KeypadAsterisk = 105,
KeypadMinus = 106,
KeypadPlus = 107,
KeypadEnter = 108,
Keypad7 = 109,
Keypad8 = 110,
Keypad9 = 111,
KeypadComma = 112,
Keypad4 = 113,
Keypad5 = 114,
Keypad6 = 115,
Keypad1 = 116,
Keypad2 = 117,
Keypad3 = 118,
Keypad0 = 119,
KeypadPeriodAndDelete = 120,
G1 = 121,
G2 = 122,
G3 = 123,
G4 = 124,
G5 = 125,
G6 = 126,
G7 = 127,
G8 = 128,
G9 = 129,
G10 = 130,
VolumeUp = 131,
VolumeDown = 132,
MR = 133,
M1 = 134,
M2 = 135,
M3 = 136,
G11 = 137,
G12 = 138,
G13 = 139,
G14 = 140,
G15 = 141,
G16 = 142,
G17 = 143,
G18 = 144,
International5 = 145,
International4 = 146,
Fn = 147,
CLK_Logo = 154
}
}
@@ -0,0 +1,30 @@
// ReSharper disable InconsistentNaming
// ReSharper disable UnusedMember.Global
namespace CUE.NET.Devices.Keyboard.Enums
{
/// <summary>
/// Contains list of available logical layouts for keyboards.
/// </summary>
public enum CorsairLogicalKeyboardLayout
{
US_Int = 1,
NA = 2,
EU = 3,
UK = 4,
BE = 5,
BR = 6,
CH = 7,
CN = 8,
DE = 9,
ES = 10,
FR = 11,
IT = 12,
ND = 13,
RU = 14,
JP = 15,
KR = 16,
TW = 17,
MEX = 18
};
}
@@ -0,0 +1,36 @@
// ReSharper disable UnusedMember.Global
// ReSharper disable InconsistentNaming
namespace CUE.NET.Devices.Keyboard.Enums
{
/// <summary>
/// Contains list of available physical layouts for keyboards.
/// </summary>
public enum CorsairPhysicalKeyboardLayout
{
/// <summary>
/// US-Keyboard
/// </summary>
US = 1,
/// <summary>
/// UK-Keyboard
/// </summary>
UK = 2,
/// <summary>
/// BR-Keyboard
/// </summary>
BR = 3,
/// <summary>
/// JP-Keyboard
/// </summary>
JP = 4,
/// <summary>
/// KR-Keyboard
/// </summary>
KR = 5
}
}