From 4f4edffdf1aaf0ccd1a75ff0c983c34604894dac Mon Sep 17 00:00:00 2001 From: Chai Fook Sing Date: Wed, 28 Sep 2022 19:46:28 +0800 Subject: [PATCH 1/2] added Ornata V3 support --- src/include/razerkbd_driver.h | 1 + src/lib/razerdevice.c | 1 + src/lib/razerkbd_driver.c | 22 ++++++++++++++++++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/include/razerkbd_driver.h b/src/include/razerkbd_driver.h index 12b0ea9..a063efc 100644 --- a/src/include/razerkbd_driver.h +++ b/src/include/razerkbd_driver.h @@ -80,6 +80,7 @@ #define USB_DEVICE_ID_RAZER_HUNTSMAN_V2 0x026c #define USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL 0x026b #define USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRELESS 0x0271 +#define USB_DEVICE_ID_RAZER_ORNATA_V3 0x028F /* 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 8a3c3ce..3be0fcb 100755 --- a/src/lib/razerdevice.c +++ b/src/lib/razerdevice.c @@ -66,6 +66,7 @@ bool is_keyboard(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_V3_MINI_WIRELESS: + case USB_DEVICE_ID_RAZER_ORNATA_V3: return true; } diff --git a/src/lib/razerkbd_driver.c b/src/lib/razerkbd_driver.c index 8e31d5a..fc83bb3 100644 --- a/src/lib/razerkbd_driver.c +++ b/src/lib/razerkbd_driver.c @@ -122,6 +122,7 @@ ssize_t razer_attr_write_mode_macro_effect(IOUSBDeviceInterface **usb_dev, const case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: + case USB_DEVICE_ID_RAZER_ORNATA_V3: report = razer_chroma_standard_set_led_effect(NOSTORE, MACRO_LED, enabled); report.transaction_id.id = 0x3F; break; @@ -355,6 +356,7 @@ ssize_t razer_attr_write_mode_none(IOUSBDeviceInterface **usb_dev, const char *b case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_ORNATA_V3: report = razer_chroma_extended_matrix_effect_none(VARSTORE, BACKLIGHT_LED); report.transaction_id.id = 0x1F; break; @@ -430,6 +432,7 @@ ssize_t razer_attr_write_mode_wave(IOUSBDeviceInterface **usb_dev, const char *b case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_ORNATA_V3: report = razer_chroma_extended_matrix_effect_wave(VARSTORE, BACKLIGHT_LED, direction, speed); report.transaction_id.id = 0x1F; break; @@ -484,6 +487,7 @@ ssize_t razer_attr_write_mode_spectrum(IOUSBDeviceInterface **usb_dev, const cha case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_ORNATA_V3: report = razer_chroma_extended_matrix_effect_spectrum(VARSTORE, BACKLIGHT_LED); report.transaction_id.id = 0x1F; break; @@ -558,6 +562,7 @@ ssize_t razer_attr_write_mode_reactive(IOUSBDeviceInterface **usb_dev, const cha case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_ORNATA_V3: report = razer_chroma_extended_matrix_effect_reactive(VARSTORE, BACKLIGHT_LED, speed, (struct razer_rgb *)&buf[1]); report.transaction_id.id = 0x1F; break; @@ -706,6 +711,7 @@ ssize_t razer_attr_write_mode_static(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_ORNATA_V3: if (count == 3) { report = razer_chroma_extended_matrix_effect_static(VARSTORE, BACKLIGHT_LED, (struct razer_rgb *)&buf[0]); @@ -875,6 +881,7 @@ ssize_t razer_attr_write_mode_static_no_store(IOUSBDeviceInterface **usb_dev, co case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_ORNATA_V3: if (count == 3) { report = razer_chroma_extended_matrix_effect_static(NOSTORE, BACKLIGHT_LED, (struct razer_rgb *)&buf[0]); @@ -942,7 +949,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch switch (product) { - case USB_DEVICE_ID_RAZER_ORNATA: + case USB_DEVICE_ID_RAZER_ORNATA: if (count == 4) { report = razer_chroma_extended_matrix_effect_starlight_single(VARSTORE, BACKLIGHT_LED, buf[0], (struct razer_rgb *)&buf[1]); @@ -964,7 +971,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch 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: + case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: if (count == 7) { report = razer_chroma_extended_matrix_effect_starlight_dual(VARSTORE, BACKLIGHT_LED, buf[0], (struct razer_rgb *)&buf[1], (struct razer_rgb *)&buf[4]); @@ -993,6 +1000,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + if (count == 7) { report = razer_chroma_extended_matrix_effect_starlight_dual(VARSTORE, BACKLIGHT_LED, buf[0], (struct razer_rgb *)&buf[1], (struct razer_rgb *)&buf[4]); @@ -1014,7 +1022,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch razer_send_payload(usb_dev, &report); break; - case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRELESS: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRELESS: if (count == 7) { report = razer_chroma_extended_matrix_effect_starlight_dual(VARSTORE, BACKLIGHT_LED, buf[0], (struct razer_rgb *)&buf[1], (struct razer_rgb *)&buf[4]); @@ -1036,7 +1044,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch razer_send_payload(usb_dev, &report); break; - case USB_DEVICE_ID_RAZER_TARTARUS_V2: + case USB_DEVICE_ID_RAZER_TARTARUS_V2: if (count == 7) { report = razer_chroma_extended_matrix_effect_starlight_dual(VARSTORE, BACKLIGHT_LED, buf[0], (struct razer_rgb *)&buf[1], (struct razer_rgb *)&buf[4]); @@ -1192,6 +1200,7 @@ ssize_t razer_attr_write_mode_breath(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_ORNATA_V3: if (count == 3) { // Single colour mode report = razer_chroma_extended_matrix_effect_breathing_single(VARSTORE, BACKLIGHT_LED, (struct razer_rgb *)&buf[0]); @@ -1397,6 +1406,7 @@ ssize_t razer_attr_write_mode_custom(IOUSBDeviceInterface **usb_dev, const char case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_ORNATA_V3: report = razer_chroma_extended_matrix_effect_custom_frame(); report.transaction_id.id = 0x1F; break; @@ -1478,6 +1488,7 @@ ssize_t razer_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev, ushort b case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_ORNATA_V3: report = razer_chroma_extended_matrix_brightness(VARSTORE, BACKLIGHT_LED, brightness); report.transaction_id.id = 0x1F; break; @@ -1561,6 +1572,7 @@ ushort razer_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev) case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_ORNATA_V3: report = razer_chroma_extended_matrix_get_brightness(VARSTORE, BACKLIGHT_LED); report.transaction_id.id = 0x1F; is_matrix_brightness = true; @@ -1684,6 +1696,7 @@ ssize_t razer_attr_write_matrix_custom_frame(IOUSBDeviceInterface **usb_dev, con case USB_DEVICE_ID_RAZER_HUNTSMAN_V2: case USB_DEVICE_ID_RAZER_HUNTSMAN_V2_TKL: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRED: + case USB_DEVICE_ID_RAZER_ORNATA_V3: report = razer_chroma_extended_matrix_set_custom_frame(row_id, start_col, stop_col, (unsigned char *)&buf[offset]); report.transaction_id.id = 0x1F; break; @@ -1756,6 +1769,7 @@ static int razer_get_report(IOUSBDeviceInterface **usb_dev, struct razer_report case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_TK: case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_PRO_WIRED: case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: + case USB_DEVICE_ID_RAZER_ORNATA_V3: report_index = 0x02; response_index = 0x02; break; From c39764cd4196ffd3028cf104e5ebd6409ace2d8c Mon Sep 17 00:00:00 2001 From: Chai Fook Sing Date: Wed, 28 Sep 2022 20:07:07 +0800 Subject: [PATCH 2/2] remove spaces that accidentally added --- src/lib/razerkbd_driver.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/razerkbd_driver.c b/src/lib/razerkbd_driver.c index fc83bb3..7e32e61 100644 --- a/src/lib/razerkbd_driver.c +++ b/src/lib/razerkbd_driver.c @@ -949,7 +949,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch switch (product) { - case USB_DEVICE_ID_RAZER_ORNATA: + case USB_DEVICE_ID_RAZER_ORNATA: if (count == 4) { report = razer_chroma_extended_matrix_effect_starlight_single(VARSTORE, BACKLIGHT_LED, buf[0], (struct razer_rgb *)&buf[1]); @@ -971,7 +971,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch 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: + case USB_DEVICE_ID_RAZER_HUNTSMAN_MINI: if (count == 7) { report = razer_chroma_extended_matrix_effect_starlight_dual(VARSTORE, BACKLIGHT_LED, buf[0], (struct razer_rgb *)&buf[1], (struct razer_rgb *)&buf[4]); @@ -1022,7 +1022,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch razer_send_payload(usb_dev, &report); break; - case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRELESS: + case USB_DEVICE_ID_RAZER_BLACKWIDOW_V3_MINI_WIRELESS: if (count == 7) { report = razer_chroma_extended_matrix_effect_starlight_dual(VARSTORE, BACKLIGHT_LED, buf[0], (struct razer_rgb *)&buf[1], (struct razer_rgb *)&buf[4]); @@ -1044,7 +1044,7 @@ ssize_t razer_attr_write_mode_starlight(IOUSBDeviceInterface **usb_dev, const ch razer_send_payload(usb_dev, &report); break; - case USB_DEVICE_ID_RAZER_TARTARUS_V2: + case USB_DEVICE_ID_RAZER_TARTARUS_V2: if (count == 7) { report = razer_chroma_extended_matrix_effect_starlight_dual(VARSTORE, BACKLIGHT_LED, buf[0], (struct razer_rgb *)&buf[1], (struct razer_rgb *)&buf[4]);