diff options
| author | Prasshant Shanmugalingam <[email protected]> | 2024-02-29 15:25:03 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-02-29 15:25:03 +0800 |
| commit | 998595719a6b2f39cab2c35f5a54a399cd07a2c3 (patch) | |
| tree | b089e896707810153fef9151640e16685a9f2b6b | |
| parent | 00b91377fc21caf9b8877d0abdc37d0a9e4f4e6a (diff) | |
| parent | 7cbd9616a5a2e8092461fd7e2aee980042403bb8 (diff) | |
| download | librazermacos-998595719a6b2f39cab2c35f5a54a399cd07a2c3.tar.xz librazermacos-998595719a6b2f39cab2c35f5a54a399cd07a2c3.zip | |
Merge pull request #5 from Svdbroek/blackwidowV4PPro-support-stickoking
Add support for Razer BlackWidow V4 Pro keyboard
| -rw-r--r-- | src/include/razerkbd_driver.h | 1 | ||||
| -rwxr-xr-x | src/lib/razerdevice.c | 3 | ||||
| -rw-r--r-- | src/lib/razerkbd_driver.c | 14 |
3 files changed, 17 insertions, 1 deletions
diff --git a/src/include/razerkbd_driver.h b/src/include/razerkbd_driver.h index f6f5c8b..360f3c3 100644 --- a/src/include/razerkbd_driver.h +++ b/src/include/razerkbd_driver.h @@ -81,6 +81,7 @@ #define USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL 0x026b #define USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRELESS 0x0271 #define USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75 0x02a5 +#define USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO 0x028D #define USB_DEVICE_ID_RAZER_DEATHSTALKER_V2 0x0295 #define USB_DEVICE_ID_RAZER_ORNATA_V3X 0x02a2 diff --git a/src/lib/razerdevice.c b/src/lib/razerdevice.c index 1eb1e15..f274017 100755 --- a/src/lib/razerdevice.c +++ b/src/lib/razerdevice.c @@ -68,7 +68,8 @@ bool is_keyboard(IOUSBDeviceInterface **usb_dev) case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRELESS: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: - case USB_DEVICE_ID_RAZER_ORNATA_V3X: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: + case USB_DEVICE_ID_RAZER_ORNATA_V3X: return true; } diff --git a/src/lib/razerkbd_driver.c b/src/lib/razerkbd_driver.c index 0ae3e1b..c103939 100644 --- a/src/lib/razerkbd_driver.c +++ b/src/lib/razerkbd_driver.c @@ -134,6 +134,7 @@ ssize_t razer_attr_write_mode_macro_effect(IOUSBDeviceInterface **usb_dev, const case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: report = razer_chroma_standard_set_led_effect(NOSTORE, MACRO_LED, enabled); report.transaction_id.id = 0x1F; break; @@ -359,6 +360,7 @@ ssize_t razer_attr_write_mode_none(IOUSBDeviceInterface **usb_dev, const char *b case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: report = razer_chroma_extended_matrix_effect_none(VARSTORE, BACKLIGHT_LED); report.transaction_id.id = 0x1F; @@ -437,6 +439,7 @@ ssize_t razer_attr_write_mode_wave(IOUSBDeviceInterface **usb_dev, const char *b case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: report = razer_chroma_extended_matrix_effect_wave(VARSTORE, BACKLIGHT_LED, direction, speed); report.transaction_id.id = 0x1F; @@ -494,6 +497,7 @@ ssize_t razer_attr_write_mode_spectrum(IOUSBDeviceInterface **usb_dev, const cha case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: report = razer_chroma_extended_matrix_effect_spectrum(VARSTORE, BACKLIGHT_LED); report.transaction_id.id = 0x1F; @@ -571,6 +575,7 @@ ssize_t razer_attr_write_mode_reactive(IOUSBDeviceInterface **usb_dev, const cha case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: report = razer_chroma_extended_matrix_effect_reactive(VARSTORE, BACKLIGHT_LED, speed, (struct razer_rgb *)&buf[1]); report.transaction_id.id = 0x1F; @@ -722,6 +727,7 @@ ssize_t razer_attr_write_mode_static(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: if (count == 3) { @@ -893,6 +899,7 @@ ssize_t razer_attr_write_mode_static_no_store(IOUSBDeviceInterface **usb_dev, co case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: if (count == 3) { @@ -1014,6 +1021,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: if (count == 7) { @@ -1216,6 +1224,7 @@ ssize_t razer_attr_write_mode_breath(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: if (count == 3) { // Single colour mode @@ -1424,6 +1433,7 @@ ssize_t razer_attr_write_mode_custom(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: report = razer_chroma_extended_matrix_effect_custom_frame(); report.transaction_id.id = 0x1F; @@ -1508,6 +1518,7 @@ ssize_t razer_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev, ushort b case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: report = razer_chroma_extended_matrix_brightness(VARSTORE, BACKLIGHT_LED, brightness); report.transaction_id.id = 0x1F; @@ -1594,6 +1605,7 @@ ushort razer_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev) case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: report = razer_chroma_extended_matrix_get_brightness(VARSTORE, BACKLIGHT_LED); report.transaction_id.id = 0x1F; @@ -1720,6 +1732,7 @@ ssize_t razer_attr_write_matrix_custom_frame(IOUSBDeviceInterface **usb_dev, con case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_ORNATA_V3X: report = razer_chroma_extended_matrix_set_custom_frame(row_id, start_col, stop_col, (unsigned char *)&buf[offset]); report.transaction_id.id = 0x1F; @@ -1803,6 +1816,7 @@ static int razer_get_report(IOUSBDeviceInterface **usb_dev, struct razer_report case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_75: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V4_PRO: case USB_DEVICE_ID_RAZER_DEATHSTALKER_V2: report_index = 0x03; response_index = 0x03; |
