aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Chen <[email protected]>2021-08-07 13:59:30 +1000
committerGitHub <[email protected]>2021-08-07 13:59:30 +1000
commitf6aa74b5c29ae7e56be7ed50f494528928e4fd99 (patch)
tree046eea1eb033ac4c95e012b8c86ad8993dc35d8c
parent980f2134e78ddaaf47378cf4a74414808b89af7a (diff)
parentcc2d05d731a3436167df5cc4dadc79f7f7b00999 (diff)
downloadlibrazermacos-f6aa74b5c29ae7e56be7ed50f494528928e4fd99.tar.xz
librazermacos-f6aa74b5c29ae7e56be7ed50f494528928e4fd99.zip
Merge pull request #8 from ryan-idea42/dev/add-blackwidow-v3-pro-support
Adding support for Razer BlackWidow V3 Pro
-rw-r--r--.gitignore1
-rw-r--r--src/include/razerkbd_driver.h1
-rwxr-xr-xsrc/lib/razerdevice.c1
-rw-r--r--src/lib/razerkbd_driver.c14
-rw-r--r--src/sample_cli.c7
5 files changed, 24 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 838b908..5cb1f3f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
obj
*.so
sample_cli
+.idea
diff --git a/src/include/razerkbd_driver.h b/src/include/razerkbd_driver.h
index fcb4706..14765f7 100644
--- a/src/include/razerkbd_driver.h
+++ b/src/include/razerkbd_driver.h
@@ -72,6 +72,7 @@
#define USB_DEVICE_ID_RAZER_CYNOSA_LITE 0x023F
#define USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK 0x0a24
#define USB_DEVICE_ID_RAZER_HUNTSMAN_MINI 0x0257
+#define USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED 0x025A
/* Each keyboard report has 90 bytes*/
#define RAZER_BLACKWIDOW_REPORT_LEN 0x5A
diff --git a/src/lib/razerdevice.c b/src/lib/razerdevice.c
index 2b1bda7..e77b5d1 100755
--- a/src/lib/razerdevice.c
+++ b/src/lib/razerdevice.c
@@ -58,6 +58,7 @@ bool is_keyboard(IOUSBDeviceInterface **usb_dev)
case USB_DEVICE_ID_RAZER_CYNOSA_LITE:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
return true;
}
diff --git a/src/lib/razerkbd_driver.c b/src/lib/razerkbd_driver.c
index 054e8af..bc87b15 100644
--- a/src/lib/razerkbd_driver.c
+++ b/src/lib/razerkbd_driver.c
@@ -118,6 +118,7 @@ ssize_t razer_attr_write_mode_macro_effect(IOUSBDeviceInterface **usb_dev, const
case USB_DEVICE_ID_RAZER_CYNOSA_LITE:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
report = razer_chroma_standard_set_led_effect(NOSTORE, MACRO_LED, enabled);
report.transaction_id.id = 0x3F;
@@ -277,6 +278,7 @@ ssize_t razer_attr_write_mode_none(IOUSBDeviceInterface **usb_dev, const char *b
case USB_DEVICE_ID_RAZER_CYNOSA_CHROMA:
case USB_DEVICE_ID_RAZER_CYNOSA_LITE:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
report = razer_chroma_extended_matrix_effect_none(VARSTORE, BACKLIGHT_LED);
break;
@@ -337,6 +339,7 @@ ssize_t razer_attr_write_mode_wave(IOUSBDeviceInterface **usb_dev, const char *b
case USB_DEVICE_ID_RAZER_CYNOSA_CHROMA:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
report = razer_chroma_extended_matrix_effect_wave(VARSTORE, BACKLIGHT_LED, direction, speed);
break;
@@ -386,6 +389,7 @@ ssize_t razer_attr_write_mode_spectrum(IOUSBDeviceInterface **usb_dev, const cha
case USB_DEVICE_ID_RAZER_CYNOSA_LITE:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
report = razer_chroma_extended_matrix_effect_spectrum(VARSTORE, BACKLIGHT_LED);
break;
@@ -448,6 +452,7 @@ ssize_t razer_attr_write_mode_reactive(IOUSBDeviceInterface **usb_dev, const cha
case USB_DEVICE_ID_RAZER_CYNOSA_CHROMA:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
report = razer_chroma_extended_matrix_effect_reactive(VARSTORE, BACKLIGHT_LED, speed, (struct razer_rgb *)&buf[1]);
break;
@@ -578,6 +583,7 @@ ssize_t razer_attr_write_mode_static(IOUSBDeviceInterface **usb_dev, const char
case USB_DEVICE_ID_RAZER_CYNOSA_LITE:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
if (count == 3)
{
@@ -728,6 +734,7 @@ ssize_t razer_attr_write_mode_static_no_store(IOUSBDeviceInterface **usb_dev, co
case USB_DEVICE_ID_RAZER_CYNOSA_CHROMA:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
if (count == 3)
{
@@ -817,6 +824,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch
case USB_DEVICE_ID_RAZER_CYNOSA_CHROMA:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
if (count == 7)
{
@@ -986,6 +994,7 @@ ssize_t razer_attr_write_mode_breath(IOUSBDeviceInterface **usb_dev, const char
case USB_DEVICE_ID_RAZER_CYNOSA_LITE:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
switch (count)
{
@@ -1182,6 +1191,7 @@ ssize_t razer_attr_write_mode_custom(IOUSBDeviceInterface **usb_dev, const char
case USB_DEVICE_ID_RAZER_CYNOSA_CHROMA:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
report = razer_chroma_extended_matrix_effect_custom_frame();
break;
@@ -1253,6 +1263,7 @@ ssize_t razer_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev, ushort b
case USB_DEVICE_ID_RAZER_CYNOSA_LITE:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
report = razer_chroma_extended_matrix_brightness(VARSTORE, BACKLIGHT_LED, brightness);
break;
@@ -1324,6 +1335,7 @@ ushort razer_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev)
case USB_DEVICE_ID_RAZER_CYNOSA_LITE:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
report = razer_chroma_extended_matrix_get_brightness(VARSTORE, BACKLIGHT_LED);
is_matrix_brightness = true;
@@ -1435,6 +1447,7 @@ ssize_t razer_attr_write_matrix_custom_frame(IOUSBDeviceInterface **usb_dev, con
case USB_DEVICE_ID_RAZER_CYNOSA_CHROMA:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
report = razer_chroma_extended_matrix_set_custom_frame(row_id, start_col, stop_col, (unsigned char *)&buf[offset]);
break;
@@ -1506,6 +1519,7 @@ static int razer_get_report(IOUSBDeviceInterface **usb_dev, struct razer_report
case USB_DEVICE_ID_RAZER_HUNTSMAN_TE:
case USB_DEVICE_ID_RAZER_ORNATA_CHROMA_V2:
case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK:
+ case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED:
case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI:
report_index = 0x02;
response_index = 0x02;
diff --git a/src/sample_cli.c b/src/sample_cli.c
index 5236c23..876f2ed 100644
--- a/src/sample_cli.c
+++ b/src/sample_cli.c
@@ -11,6 +11,13 @@ int main(int argc, const char * argv[]) {
for (int i = 0; i < allDevices.size; i++) {
RazerDevice device = razerDevices[i];
printf("%#06x\n", device.productId);
+
+ // Testing out the blackwidow v3 pro changes by switching to wave
+ if (device.productId == 0x025A)
+ {
+ printf("Found blackwidow v3 pro keyboard (wired)\n");
+ razer_attr_write_mode_wave(device.usbDevice, "1", 0, 0x90);
+ }
}
closeAllRazerDevices(allDevices);