Skip to content

Commit a008f14

Browse files
kirbCalcProgrammer1
authored andcommitted
Add ASUS Falchion 65% keyboard.
1 parent 3100f72 commit a008f14

File tree

3 files changed

+94
-0
lines changed

3 files changed

+94
-0
lines changed

Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
#define AURA_ROG_CHAKRAM_WIRED_2_PID 0x1958
4040
#define AURA_ROG_THRONE_QI_PID 0x18C5
4141
#define AURA_TUF_K7_GAMING_PID 0x18AA
42+
#define AURA_ROG_FALCHION_WIRED_PID 0x193C
43+
#define AURA_ROG_FALCHION_WIRELESS_PID 0x193E
4244

4345
AuraKeyboardMappingLayoutType GetKeyboardMappingLayoutType(int pid)
4446
{
@@ -57,6 +59,10 @@ AuraKeyboardMappingLayoutType GetKeyboardMappingLayoutType(int pid)
5759
case AURA_ROG_STRIX_SCOPE_TKL_PID:
5860
return SCOPE_TKL_LAYOUT;
5961

62+
case AURA_ROG_FALCHION_WIRED_PID:
63+
case AURA_ROG_FALCHION_WIRELESS_PID:
64+
return FALCHION_LAYOUT;
65+
6066
default:
6167
return FLARE_LAYOUT;
6268
}
@@ -181,3 +187,5 @@ REGISTER_HID_DETECTOR_IP("ASUS ROG Strix Scope RX", DetectAsusAuraUS
181187
REGISTER_HID_DETECTOR_IP("ASUS ROG Strix Scope TKL", DetectAsusAuraUSBKeyboards, AURA_USB_VID, AURA_ROG_STRIX_SCOPE_TKL_PID, 1, 0xFF00);
182188
REGISTER_HID_DETECTOR_I ("ASUS ROG Throne QI", DetectAsusAuraUSBHeadsetStand, AURA_USB_VID, AURA_ROG_THRONE_QI_PID, 0);
183189
REGISTER_HID_DETECTOR_I ("ASUS TUF Gaming K7", DetectAsusAuraTUFUSBKeyboard, AURA_USB_VID, AURA_TUF_K7_GAMING_PID, 1);
190+
REGISTER_HID_DETECTOR_IP("ASUS ROG Falchion (Wired)", DetectAsusAuraUSBKeyboards, AURA_USB_VID, AURA_ROG_FALCHION_WIRED_PID, 1, 0xFF00);
191+
REGISTER_HID_DETECTOR_IP("ASUS ROG Falchion (Wireless)", DetectAsusAuraUSBKeyboards, AURA_USB_VID, AURA_ROG_FALCHION_WIRELESS_PID, 1, 0xFF00);

Controllers/AsusAuraUSBController/RGBController_AsusAuraKeyboard.cpp

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ static unsigned int scope_tkl_matrix_map[6][18] =
3636
{ 4, 6, 11, 17, 22, 27, 32, 37, 42, 47, 53, 58, 74, NA, NA, NA, 81, NA },
3737
{ 5, NA, 7, 12, NA, NA, NA, 33, NA, 48, NA, 59, 64, 75, NA, 78, 82, 85 } };
3838

39+
static unsigned int falchion_matrix_map[5][16] =
40+
{ { 0, 5, 9, 14, 18, 22, 26, 31, 35, 39, 44, 49, 54, 58, NA, 63 },
41+
{ 1, NA, 6, 10, 15, 19, 23, 27, 32, 36, 40, 45, 50, 55, 59, 64 },
42+
{ 2, NA, 7, 11, 16, 20, 24, 28, 33, 37, 41, 46, 51, 60, NA, 65 },
43+
{ 3, NA, 12, 17, 21, 25, 29, 34, 38, 42, 47, 52, 56, NA, 61, 66 },
44+
{ 4, 8, 13, NA, NA, NA, 30, NA, NA, NA, 43, 48, 53, 57, 62, 67 } };
45+
3946
static const std::vector<led_type> default_led_names =
4047
{
4148
/* Key Label Index */
@@ -260,8 +267,81 @@ static const std::vector<led_type> default_tkl_led_names =
260267
{ "Underglow 24", 0xBE },
261268
{ "Underglow 25", 0xC6 },
262269
{ "Underglow 26", 0xCE },
270+
};
263271

272+
static const std::vector<led_type> default_65pct_led_names =
273+
{
274+
/* Key Label Index */
275+
{ "Key: Escape", 0x00 },
276+
{ "Key: Tab", 0x01 },
277+
{ "Key: Caps Lock", 0x02 },
278+
{ "Key: Left Shift", 0x03 },
279+
{ "Key: Left Control", 0x04 },
280+
{ "Key: 1", 0x08 },
281+
{ "Key: Q", 0x09 },
282+
{ "Key: A", 0x0A },
283+
{ "Key: Left Windows", 0x0C },
284+
{ "Key: 2", 0x10 },
285+
{ "Key: W", 0x11 },
286+
{ "Key: S", 0x12 },
287+
{ "Key: Z", 0x13 },
288+
{ "Key: Left Alt", 0x14 },
289+
{ "Key: 3", 0x18 },
290+
{ "Key: E", 0x19 },
291+
{ "Key: D", 0x1A },
292+
{ "Key: X", 0x1B },
293+
{ "Key: 4", 0x20 },
294+
{ "Key: R", 0x21 },
295+
{ "Key: F", 0x22 },
296+
{ "Key: C", 0x23 },
297+
{ "Key: 5", 0x28 },
298+
{ "Key: T", 0x29 },
299+
{ "Key: G", 0x2A },
300+
{ "Key: V", 0x2B },
301+
{ "Key: 6", 0x30 },
302+
{ "Key: Y", 0x31 },
303+
{ "Key: H", 0x32 },
304+
{ "Key: B", 0x33 },
305+
{ "Key: Space", 0x34 },
306+
{ "Key: 7", 0x38 },
307+
{ "Key: U", 0x39 },
308+
{ "Key: J", 0x3A },
309+
{ "Key: N", 0x3B },
310+
{ "Key: 8", 0x40 },
311+
{ "Key: I", 0x41 },
312+
{ "Key: K", 0x42 },
313+
{ "Key: M", 0x43 },
314+
{ "Key: 9", 0x48 },
315+
{ "Key: O", 0x49 },
316+
{ "Key: L", 0x4A },
317+
{ "Key: ,", 0x4B },
318+
{ "Key: Right Alt", 0x4C },
319+
{ "Key: 0", 0x50 },
320+
{ "Key: P", 0x51 },
321+
{ "Key: ;", 0x52 },
322+
{ "Key: .", 0x53 },
323+
{ "Key: Right Fn", 0x54 },
324+
{ "Key: -", 0x58 },
325+
{ "Key: [", 0x59 },
326+
{ "Key: '", 0x5A },
327+
{ "Key: /", 0x5B },
328+
{ "Key: Right Control", 0x5C },
329+
{ "Key: =", 0x60 },
330+
{ "Key: ]", 0x61 },
331+
{ "Key: Right Shift", 0x63 },
332+
{ "Key: Left Arrow", 0x64 },
333+
{ "Key: Backspace", 0x68 },
334+
{ "Key: \\ (ANSI)", 0x69 },
335+
{ "Key: Enter", 0x6A },
336+
{ "Key: Up Arrow", 0x6B },
337+
{ "Key: Down Arrow", 0x6C },
338+
{ "Key: Insert", 0x70 },
339+
{ "Key: Delete", 0x71 },
340+
{ "Key: Page Up", 0x72 },
341+
{ "Key: Page Down", 0x73 },
342+
{ "Key: Right Arrow", 0x74 },
264343
};
344+
265345
RGBController_AuraKeyboard::RGBController_AuraKeyboard(AuraKeyboardController* aura_ptr, AuraKeyboardMappingLayoutType keyboard_layout)
266346
{
267347
aura = aura_ptr;
@@ -351,6 +431,11 @@ void RGBController_AuraKeyboard::SetupZones()
351431
led_names.push_back({ "Left Underglow", 0xB9});
352432
led_names.push_back({ "Right Underglow", 0xBA});
353433
break;
434+
435+
case FALCHION_LAYOUT:
436+
led_names = default_65pct_led_names;
437+
led_zones.push_back({"Keyboard", ZONE_TYPE_MATRIX, 68, new matrix_map_type{5, 16, (unsigned int *)&falchion_matrix_map}});
438+
break;
354439
}
355440

356441
unsigned int total_led_count = 0;

Controllers/AsusAuraUSBController/RGBController_AsusAuraKeyboard.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ enum AuraKeyboardMappingLayoutType
1717
SCOPE_LAYOUT,
1818
SCOPE_RX_LAYOUT,
1919
SCOPE_TKL_LAYOUT,
20+
FALCHION_LAYOUT,
2021
};
2122

2223
typedef struct

0 commit comments

Comments
 (0)