aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrasshant Shanmugalingam <[email protected]>2024-02-29 15:25:03 +0800
committerGitHub <[email protected]>2024-02-29 15:25:03 +0800
commit998595719a6b2f39cab2c35f5a54a399cd07a2c3 (patch)
treeb089e896707810153fef9151640e16685a9f2b6b
parent00b91377fc21caf9b8877d0abdc37d0a9e4f4e6a (diff)
parent7cbd9616a5a2e8092461fd7e2aee980042403bb8 (diff)
downloadlibrazermacos-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.h1
-rwxr-xr-xsrc/lib/razerdevice.c3
-rw-r--r--src/lib/razerkbd_driver.c14
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;