Skip to content

Commit 656561f

Browse files
author
Aytackydln
committed
call LogiLedSetTargetDevice on Logitech initialize
refactor logitech lgs and ghub calls into different classes with common interface
1 parent 293b016 commit 656561f

5 files changed

Lines changed: 425 additions & 286 deletions

File tree

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
namespace Common.Devices.Logitech;
2+
3+
4+
public enum KeyboardNames
5+
{
6+
ESC = 0x01,
7+
F1 = 0x3b,
8+
F2 = 0x3c,
9+
F3 = 0x3d,
10+
F4 = 0x3e,
11+
F5 = 0x3f,
12+
F6 = 0x40,
13+
F7 = 0x41,
14+
F8 = 0x42,
15+
F9 = 0x43,
16+
F10 = 0x44,
17+
F11 = 0x57,
18+
F12 = 0x58,
19+
PRINT_SCREEN = 0x137,
20+
SCROLL_LOCK = 0x46,
21+
PAUSE_BREAK = 0x145,
22+
TILDE = 0x29,
23+
ONE = 0x02,
24+
TWO = 0x03,
25+
THREE = 0x04,
26+
FOUR = 0x05,
27+
FIVE = 0x06,
28+
SIX = 0x07,
29+
SEVEN = 0x08,
30+
EIGHT = 0x09,
31+
NINE = 0x0A,
32+
ZERO = 0x0B,
33+
MINUS = 0x0C,
34+
EQUALS = 0x0D,
35+
BACKSPACE = 0x0E,
36+
INSERT = 0x152,
37+
HOME = 0x147,
38+
PAGE_UP = 0x149,
39+
NUM_LOCK = 0x45,
40+
NUM_SLASH = 0x135,
41+
NUM_ASTERISK = 0x37,
42+
NUM_MINUS = 0x4A,
43+
TAB = 0x0F,
44+
Q = 0x10,
45+
W = 0x11,
46+
E = 0x12,
47+
R = 0x13,
48+
T = 0x14,
49+
Y = 0x15,
50+
U = 0x16,
51+
I = 0x17,
52+
O = 0x18,
53+
P = 0x19,
54+
OPEN_BRACKET = 0x1A,
55+
CLOSE_BRACKET = 0x1B,
56+
BACKSLASH = 0x2B,
57+
KEYBOARD_DELETE = 0x153,
58+
END = 0x14F,
59+
PAGE_DOWN = 0x151,
60+
NUM_SEVEN = 0x47,
61+
NUM_EIGHT = 0x48,
62+
NUM_NINE = 0x49,
63+
NUM_PLUS = 0x4E,
64+
CAPS_LOCK = 0x3A,
65+
A = 0x1E,
66+
S = 0x1F,
67+
D = 0x20,
68+
F = 0x21,
69+
G = 0x22,
70+
H = 0x23,
71+
J = 0x24,
72+
K = 0x25,
73+
L = 0x26,
74+
SEMICOLON = 0x27,
75+
APOSTROPHE = 0x28,
76+
ENTER = 0x1C,
77+
NUM_FOUR = 0x4B,
78+
NUM_FIVE = 0x4C,
79+
NUM_SIX = 0x4D,
80+
LEFT_SHIFT = 0x2A,
81+
Z = 0x2C,
82+
X = 0x2D,
83+
C = 0x2E,
84+
V = 0x2F,
85+
B = 0x30,
86+
N = 0x31,
87+
M = 0x32,
88+
COMMA = 0x33,
89+
PERIOD = 0x34,
90+
FORWARD_SLASH = 0x35,
91+
RIGHT_SHIFT = 0x36,
92+
ARROW_UP = 0x148,
93+
NUM_ONE = 0x4F,
94+
NUM_TWO = 0x50,
95+
NUM_THREE = 0x51,
96+
NUM_ENTER = 0x11C,
97+
LEFT_CONTROL = 0x1D,
98+
LEFT_WINDOWS = 0x15B,
99+
LEFT_ALT = 0x38,
100+
SPACE = 0x39,
101+
RIGHT_ALT = 0x138,
102+
RIGHT_WINDOWS = 0x15C,
103+
APPLICATION_SELECT = 0x15D,
104+
RIGHT_CONTROL = 0x11D,
105+
ARROW_LEFT = 0x14B,
106+
ARROW_DOWN = 0x150,
107+
ARROW_RIGHT = 0x14D,
108+
NUM_ZERO = 0x52,
109+
NUM_PERIOD = 0x53,
110+
G_1 = 0xFFF1,
111+
G_2 = 0xFFF2,
112+
G_3 = 0xFFF3,
113+
G_4 = 0xFFF4,
114+
G_5 = 0xFFF5,
115+
G_6 = 0xFFF6,
116+
G_7 = 0xFFF7,
117+
G_8 = 0xFFF8,
118+
G_9 = 0xFFF9,
119+
G_LOGO = 0xFFFF1,
120+
G_BADGE = 0xFFFF2
121+
}
122+
123+
public enum DeviceType
124+
{
125+
Keyboard = 0x0,
126+
Mouse = 0x3,
127+
Mousemat = 0x4,
128+
Headset = 0x8,
129+
Speaker = 0xe
130+
}
131+
132+
133+
134+
public enum LogiLedType
135+
{
136+
Monochrome = ILogitechGsdk.LOGI_DEVICETYPE_MONOCHROME,
137+
Rgb = ILogitechGsdk.LOGI_DEVICETYPE_RGB,
138+
PerKeyRgb = ILogitechGsdk.LOGI_DEVICETYPE_PERKEY_RGB,
139+
All = ILogitechGsdk.LOGI_DEVICETYPE_MONOCHROME | ILogitechGsdk.LOGI_DEVICETYPE_RGB | ILogitechGsdk.LOGI_DEVICETYPE_PERKEY_RGB,
140+
}
141+
142+
public enum LGDLL
143+
{
144+
LGS,
145+
GHUB
146+
}
147+
148+
public interface ILogitechGsdk
149+
{
150+
public const int LOGI_DEVICETYPE_MONOCHROME_ORD = 0;
151+
public const int LOGI_DEVICETYPE_RGB_ORD = 1;
152+
public const int LOGI_DEVICETYPE_PERKEY_RGB_ORD = 2;
153+
public const int LOGI_DEVICETYPE_MONOCHROME = 1 << LOGI_DEVICETYPE_MONOCHROME_ORD;
154+
public const int LOGI_DEVICETYPE_RGB = 1 << LOGI_DEVICETYPE_RGB_ORD;
155+
public const int LOGI_DEVICETYPE_PERKEY_RGB = 1 << LOGI_DEVICETYPE_PERKEY_RGB_ORD;
156+
157+
public const int LOGI_LED_BITMAP_WIDTH = 21;
158+
public const int LOGI_LED_BITMAP_HEIGHT = 6;
159+
public const int LOGI_LED_BITMAP_BYTES_PER_KEY = 4;
160+
161+
public const int LOGI_LED_BITMAP_SIZE = LOGI_LED_BITMAP_WIDTH * LOGI_LED_BITMAP_HEIGHT * LOGI_LED_BITMAP_BYTES_PER_KEY;
162+
163+
bool LogiLedInit();
164+
bool LogiLedSetTargetDevice(LogiLedType deviceType);
165+
bool LogiLedSetLighting(SimpleColor color);
166+
bool LogiLedSetLightingFromBitmap(byte[] bitmap);
167+
bool LogiLedSetLightingForKeyWithKeyName(KeyboardNames keyCode, SimpleColor color);
168+
bool LogiLedSetLightingForTargetZone(DeviceType deviceType, int zone, SimpleColor color);
169+
void LogiLedShutdown();
170+
bool LogiLedSaveCurrentLighting();
171+
bool LogiLedRestoreLighting();
172+
}

0 commit comments

Comments
 (0)