1pub const LOGI_LED_BITMAP_WIDTH: u32 = 21;
4pub const LOGI_LED_BITMAP_HEIGHT: u32 = 6;
5pub const LOGI_LED_BITMAP_BYTES_PER_KEY: u32 = 4;
6pub const LOGI_LED_BITMAP_SIZE: u32 = 504;
7pub const LOGI_LED_DURATION_INFINITE: u32 = 0;
8pub const LOGI_DEVICETYPE_MONOCHROME_ORD: u32 = 0;
9pub const LOGI_DEVICETYPE_RGB_ORD: u32 = 1;
10pub const LOGI_DEVICETYPE_PERKEY_RGB_ORD: u32 = 2;
11pub const LOGI_DEVICETYPE_MONOCHROME: u32 = 1;
12pub const LOGI_DEVICETYPE_RGB: u32 = 2;
13pub const LOGI_DEVICETYPE_PERKEY_RGB: u32 = 4;
14pub const LOGI_DEVICETYPE_ALL: u32 = 7;
15#[repr(i32)]
16#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17pub enum LogiLed_KeyName {
18 ESC = 1,
19 F1 = 59,
20 F2 = 60,
21 F3 = 61,
22 F4 = 62,
23 F5 = 63,
24 F6 = 64,
25 F7 = 65,
26 F8 = 66,
27 F9 = 67,
28 F10 = 68,
29 F11 = 87,
30 F12 = 88,
31 PRINT_SCREEN = 311,
32 SCROLL_LOCK = 70,
33 PAUSE_BREAK = 325,
34 TILDE = 41,
35 ONE = 2,
36 TWO = 3,
37 THREE = 4,
38 FOUR = 5,
39 FIVE = 6,
40 SIX = 7,
41 SEVEN = 8,
42 EIGHT = 9,
43 NINE = 10,
44 ZERO = 11,
45 MINUS = 12,
46 EQUALS = 13,
47 BACKSPACE = 14,
48 INSERT = 338,
49 HOME = 327,
50 PAGE_UP = 329,
51 NUM_LOCK = 69,
52 NUM_SLASH = 309,
53 NUM_ASTERISK = 55,
54 NUM_MINUS = 74,
55 TAB = 15,
56 Q = 16,
57 W = 17,
58 E = 18,
59 R = 19,
60 T = 20,
61 Y = 21,
62 U = 22,
63 I = 23,
64 O = 24,
65 P = 25,
66 OPEN_BRACKET = 26,
67 CLOSE_BRACKET = 27,
68 BACKSLASH = 43,
69 KEYBOARD_DELETE = 339,
70 END = 335,
71 PAGE_DOWN = 337,
72 NUM_SEVEN = 71,
73 NUM_EIGHT = 72,
74 NUM_NINE = 73,
75 NUM_PLUS = 78,
76 CAPS_LOCK = 58,
77 A = 30,
78 S = 31,
79 D = 32,
80 F = 33,
81 G = 34,
82 H = 35,
83 J = 36,
84 K = 37,
85 L = 38,
86 SEMICOLON = 39,
87 APOSTROPHE = 40,
88 ENTER = 28,
89 NUM_FOUR = 75,
90 NUM_FIVE = 76,
91 NUM_SIX = 77,
92 LEFT_SHIFT = 42,
93 Z = 44,
94 X = 45,
95 C = 46,
96 V = 47,
97 B = 48,
98 N = 49,
99 M = 50,
100 COMMA = 51,
101 PERIOD = 52,
102 FORWARD_SLASH = 53,
103 RIGHT_SHIFT = 54,
104 ARROW_UP = 328,
105 NUM_ONE = 79,
106 NUM_TWO = 80,
107 NUM_THREE = 81,
108 NUM_ENTER = 284,
109 LEFT_CONTROL = 29,
110 LEFT_WINDOWS = 347,
111 LEFT_ALT = 56,
112 SPACE = 57,
113 RIGHT_ALT = 312,
114 RIGHT_WINDOWS = 348,
115 APPLICATION_SELECT = 349,
116 RIGHT_CONTROL = 285,
117 ARROW_LEFT = 331,
118 ARROW_DOWN = 336,
119 ARROW_RIGHT = 333,
120 NUM_ZERO = 82,
121 NUM_PERIOD = 83,
122 G_1 = 65521,
123 G_2 = 65522,
124 G_3 = 65523,
125 G_4 = 65524,
126 G_5 = 65525,
127 G_6 = 65526,
128 G_7 = 65527,
129 G_8 = 65528,
130 G_9 = 65529,
131 G_LOGO = 1048561,
132 G_BADGE = 1048562,
133}
134#[repr(i32)]
135#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
136pub enum LogiLed_DeviceType {
137 Keyboard = 0,
138 Mouse = 3,
139 Mousemat = 4,
140 Headset = 8,
141 Speaker = 14,
142}
143extern "C" {
144 #[link_name = "\u{1}?LogiLedInit@@YA_NXZ"]
145 pub fn LogiLedInit() -> bool;
146}
147extern "C" {
148 #[link_name = "\u{1}?LogiLedInitWithName@@YA_NQEBD@Z"]
149 pub fn LogiLedInitWithName(name: *const ::std::os::raw::c_char) -> bool;
150}
151extern "C" {
152 #[link_name = "\u{1}?LogiLedGetSdkVersion@@YA_NPEAH00@Z"]
153 pub fn LogiLedGetSdkVersion(
154 majorNum: *mut ::std::os::raw::c_int,
155 minorNum: *mut ::std::os::raw::c_int,
156 buildNum: *mut ::std::os::raw::c_int,
157 ) -> bool;
158}
159extern "C" {
160 #[link_name = "\u{1}?LogiLedGetConfigOptionNumber@@YA_NPEB_WPEAN@Z"]
161 pub fn LogiLedGetConfigOptionNumber(configPath: *const u16, defaultValue: *mut f64) -> bool;
162}
163extern "C" {
164 #[link_name = "\u{1}?LogiLedGetConfigOptionBool@@YA_NPEB_WPEA_N@Z"]
165 pub fn LogiLedGetConfigOptionBool(configPath: *const u16, defaultValue: *mut bool) -> bool;
166}
167extern "C" {
168 #[link_name = "\u{1}?LogiLedGetConfigOptionColor@@YA_NPEB_WPEAH11@Z"]
169 pub fn LogiLedGetConfigOptionColor(
170 configPath: *const u16,
171 defaultRed: *mut ::std::os::raw::c_int,
172 defaultGreen: *mut ::std::os::raw::c_int,
173 defaultBlue: *mut ::std::os::raw::c_int,
174 ) -> bool;
175}
176extern "C" {
177 #[link_name = "\u{1}?LogiLedGetConfigOptionRect@@YA_NPEB_WPEAH111@Z"]
178 pub fn LogiLedGetConfigOptionRect(
179 configPath: *const u16,
180 defaultX: *mut ::std::os::raw::c_int,
181 defaultY: *mut ::std::os::raw::c_int,
182 defaultWidth: *mut ::std::os::raw::c_int,
183 defaultHeight: *mut ::std::os::raw::c_int,
184 ) -> bool;
185}
186extern "C" {
187 #[link_name = "\u{1}?LogiLedGetConfigOptionString@@YA_NPEB_WPEA_WH@Z"]
188 pub fn LogiLedGetConfigOptionString(
189 configPath: *const u16,
190 defaultValue: *mut u16,
191 bufferSize: ::std::os::raw::c_int,
192 ) -> bool;
193}
194extern "C" {
195 #[link_name = "\u{1}?LogiLedGetConfigOptionKeyInput@@YA_NPEB_WPEA_WH@Z"]
196 pub fn LogiLedGetConfigOptionKeyInput(
197 configPath: *const u16,
198 defaultValue: *mut u16,
199 bufferSize: ::std::os::raw::c_int,
200 ) -> bool;
201}
202extern "C" {
203 #[link_name = "\u{1}?LogiLedGetConfigOptionSelect@@YA_NPEB_WPEA_WPEAH0H@Z"]
204 pub fn LogiLedGetConfigOptionSelect(
205 configPath: *const u16,
206 defaultValue: *mut u16,
207 valueSize: *mut ::std::os::raw::c_int,
208 values: *const u16,
209 bufferSize: ::std::os::raw::c_int,
210 ) -> bool;
211}
212extern "C" {
213 #[link_name = "\u{1}?LogiLedGetConfigOptionRange@@YA_NPEB_WPEAHHH@Z"]
214 pub fn LogiLedGetConfigOptionRange(
215 configPath: *const u16,
216 defaultValue: *mut ::std::os::raw::c_int,
217 min: ::std::os::raw::c_int,
218 max: ::std::os::raw::c_int,
219 ) -> bool;
220}
221extern "C" {
222 #[link_name = "\u{1}?LogiLedSetConfigOptionLabel@@YA_NPEB_WPEA_W@Z"]
223 pub fn LogiLedSetConfigOptionLabel(configPath: *const u16, label: *mut u16) -> bool;
224}
225extern "C" {
226 #[link_name = "\u{1}?LogiLedSetTargetDevice@@YA_NH@Z"]
227 pub fn LogiLedSetTargetDevice(targetDevice: ::std::os::raw::c_int) -> bool;
228}
229extern "C" {
230 #[link_name = "\u{1}?LogiLedSaveCurrentLighting@@YA_NXZ"]
231 pub fn LogiLedSaveCurrentLighting() -> bool;
232}
233extern "C" {
234 #[link_name = "\u{1}?LogiLedSetLighting@@YA_NHHH@Z"]
235 pub fn LogiLedSetLighting(
236 redPercentage: ::std::os::raw::c_int,
237 greenPercentage: ::std::os::raw::c_int,
238 bluePercentage: ::std::os::raw::c_int,
239 ) -> bool;
240}
241extern "C" {
242 #[link_name = "\u{1}?LogiLedRestoreLighting@@YA_NXZ"]
243 pub fn LogiLedRestoreLighting() -> bool;
244}
245extern "C" {
246 #[link_name = "\u{1}?LogiLedFlashLighting@@YA_NHHHHH@Z"]
247 pub fn LogiLedFlashLighting(
248 redPercentage: ::std::os::raw::c_int,
249 greenPercentage: ::std::os::raw::c_int,
250 bluePercentage: ::std::os::raw::c_int,
251 milliSecondsDuration: ::std::os::raw::c_int,
252 milliSecondsInterval: ::std::os::raw::c_int,
253 ) -> bool;
254}
255extern "C" {
256 #[link_name = "\u{1}?LogiLedPulseLighting@@YA_NHHHHH@Z"]
257 pub fn LogiLedPulseLighting(
258 redPercentage: ::std::os::raw::c_int,
259 greenPercentage: ::std::os::raw::c_int,
260 bluePercentage: ::std::os::raw::c_int,
261 milliSecondsDuration: ::std::os::raw::c_int,
262 milliSecondsInterval: ::std::os::raw::c_int,
263 ) -> bool;
264}
265extern "C" {
266 #[link_name = "\u{1}?LogiLedStopEffects@@YA_NXZ"]
267 pub fn LogiLedStopEffects() -> bool;
268}
269extern "C" {
270 #[link_name = "\u{1}?LogiLedSetLightingFromBitmap@@YA_NQEAE@Z"]
271 pub fn LogiLedSetLightingFromBitmap(bitmap: *mut ::std::os::raw::c_uchar) -> bool;
272}
273extern "C" {
274 #[link_name = "\u{1}?LogiLedSetLightingForKeyWithScanCode@@YA_NHHHH@Z"]
275 pub fn LogiLedSetLightingForKeyWithScanCode(
276 keyCode: ::std::os::raw::c_int,
277 redPercentage: ::std::os::raw::c_int,
278 greenPercentage: ::std::os::raw::c_int,
279 bluePercentage: ::std::os::raw::c_int,
280 ) -> bool;
281}
282extern "C" {
283 #[link_name = "\u{1}?LogiLedSetLightingForKeyWithHidCode@@YA_NHHHH@Z"]
284 pub fn LogiLedSetLightingForKeyWithHidCode(
285 keyCode: ::std::os::raw::c_int,
286 redPercentage: ::std::os::raw::c_int,
287 greenPercentage: ::std::os::raw::c_int,
288 bluePercentage: ::std::os::raw::c_int,
289 ) -> bool;
290}
291extern "C" {
292 #[link_name = "\u{1}?LogiLedSetLightingForKeyWithQuartzCode@@YA_NHHHH@Z"]
293 pub fn LogiLedSetLightingForKeyWithQuartzCode(
294 keyCode: ::std::os::raw::c_int,
295 redPercentage: ::std::os::raw::c_int,
296 greenPercentage: ::std::os::raw::c_int,
297 bluePercentage: ::std::os::raw::c_int,
298 ) -> bool;
299}
300extern "C" {
301 #[link_name = "\u{1}?LogiLedSetLightingForKeyWithKeyName@@YA_NW4KeyName@LogiLed@@HHH@Z"]
302 pub fn LogiLedSetLightingForKeyWithKeyName(
303 keyName: LogiLed_KeyName,
304 redPercentage: ::std::os::raw::c_int,
305 greenPercentage: ::std::os::raw::c_int,
306 bluePercentage: ::std::os::raw::c_int,
307 ) -> bool;
308}
309extern "C" {
310 #[link_name = "\u{1}?LogiLedSaveLightingForKey@@YA_NW4KeyName@LogiLed@@@Z"]
311 pub fn LogiLedSaveLightingForKey(keyName: LogiLed_KeyName) -> bool;
312}
313extern "C" {
314 #[link_name = "\u{1}?LogiLedRestoreLightingForKey@@YA_NW4KeyName@LogiLed@@@Z"]
315 pub fn LogiLedRestoreLightingForKey(keyName: LogiLed_KeyName) -> bool;
316}
317extern "C" {
318 #[link_name = "\u{1}?LogiLedExcludeKeysFromBitmap@@YA_NPEAW4KeyName@LogiLed@@H@Z"]
319 pub fn LogiLedExcludeKeysFromBitmap(
320 keyList: *mut LogiLed_KeyName,
321 listCount: ::std::os::raw::c_int,
322 ) -> bool;
323}
324extern "C" {
325 #[link_name = "\u{1}?LogiLedFlashSingleKey@@YA_NW4KeyName@LogiLed@@HHHHH@Z"]
326 pub fn LogiLedFlashSingleKey(
327 keyName: LogiLed_KeyName,
328 redPercentage: ::std::os::raw::c_int,
329 greenPercentage: ::std::os::raw::c_int,
330 bluePercentage: ::std::os::raw::c_int,
331 msDuration: ::std::os::raw::c_int,
332 msInterval: ::std::os::raw::c_int,
333 ) -> bool;
334}
335extern "C" {
336 #[link_name = "\u{1}?LogiLedPulseSingleKey@@YA_NW4KeyName@LogiLed@@HHHHHHH_N@Z"]
337 pub fn LogiLedPulseSingleKey(
338 keyName: LogiLed_KeyName,
339 startRedPercentage: ::std::os::raw::c_int,
340 startGreenPercentage: ::std::os::raw::c_int,
341 startBluePercentage: ::std::os::raw::c_int,
342 finishRedPercentage: ::std::os::raw::c_int,
343 finishGreenPercentage: ::std::os::raw::c_int,
344 finishBluePercentage: ::std::os::raw::c_int,
345 msDuration: ::std::os::raw::c_int,
346 isInfinite: bool,
347 ) -> bool;
348}
349extern "C" {
350 #[link_name = "\u{1}?LogiLedStopEffectsOnKey@@YA_NW4KeyName@LogiLed@@@Z"]
351 pub fn LogiLedStopEffectsOnKey(keyName: LogiLed_KeyName) -> bool;
352}
353extern "C" {
354 #[link_name = "\u{1}?LogiLedSetLightingForTargetZone@@YA_NW4DeviceType@LogiLed@@HHHH@Z"]
355 pub fn LogiLedSetLightingForTargetZone(
356 deviceType: LogiLed_DeviceType,
357 zone: ::std::os::raw::c_int,
358 redPercentage: ::std::os::raw::c_int,
359 greenPercentage: ::std::os::raw::c_int,
360 bluePercentage: ::std::os::raw::c_int,
361 ) -> bool;
362}
363extern "C" {
364 #[link_name = "\u{1}?LogiLedShutdown@@YAXXZ"]
365 pub fn LogiLedShutdown();
366}