From 6ac2fac06457703d609fb3600583c188ebcca3bc Mon Sep 17 00:00:00 2001 From: Jamie Maynard <29251905+j-maynard@users.noreply.github.com> Date: Tue, 21 Mar 2023 12:20:40 +0000 Subject: [PATCH] Added Razer Laptop Stand Tested and confirmed as working. Added support for the Razer Laptop Stand with support for static, spectrum, breating and wave. --- src/include/razeraccessory_driver.h | 3 ++- src/lib/razeraccessory_driver.c | 12 +++++++++++- src/lib/razerdevice.c | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/include/razeraccessory_driver.h b/src/include/razeraccessory_driver.h index 2b3913e..3ad1f41 100644 --- a/src/include/razeraccessory_driver.h +++ b/src/include/razeraccessory_driver.h @@ -24,6 +24,7 @@ #define USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA 0x0F1D #define USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA 0x0F20 #define USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA 0x0F21 +#define USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA 0x0F2B #define RAZER_ACCESSORY_WAIT_MIN_US 600 #define RAZER_ACCESSORY_WAIT_MAX_US 1000 @@ -40,4 +41,4 @@ ushort razer_accessory_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev); ssize_t razer_accessory_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev, ushort brightness, size_t count); -#endif \ No newline at end of file +#endif diff --git a/src/lib/razeraccessory_driver.c b/src/lib/razeraccessory_driver.c index a2b9f1f..6ddad1c 100644 --- a/src/lib/razeraccessory_driver.c +++ b/src/lib/razeraccessory_driver.c @@ -109,6 +109,7 @@ ssize_t razer_accessory_attr_write_mode_spectrum(IOUSBDeviceInterface **usb_dev, case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: + case USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA: report = razer_chroma_extended_matrix_effect_spectrum(VARSTORE, ZERO_LED); report.transaction_id.id = 0x1F; break; @@ -152,6 +153,7 @@ ssize_t razer_accessory_attr_write_mode_none(IOUSBDeviceInterface **usb_dev, con case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: + case USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA: report = razer_chroma_extended_matrix_effect_none(VARSTORE, ZERO_LED); report.transaction_id.id = 0x1F; break; @@ -220,6 +222,7 @@ ssize_t razer_accessory_attr_write_mode_custom(IOUSBDeviceInterface **usb_dev, c case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: + case USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA: report = razer_chroma_extended_matrix_effect_custom_frame(); report.transaction_id.id = 0x1F; break; @@ -264,6 +267,7 @@ ssize_t razer_accessory_attr_write_mode_static(IOUSBDeviceInterface **usb_dev, c case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: + case USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA: report = razer_chroma_extended_matrix_effect_static(VARSTORE, ZERO_LED, (struct razer_rgb*) & buf[0]); report.transaction_id.id = 0x1F; break; @@ -312,6 +316,7 @@ ssize_t razer_accessory_attr_write_mode_wave(IOUSBDeviceInterface **usb_dev, con case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: + case USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA: report = razer_chroma_extended_matrix_effect_wave(VARSTORE, ZERO_LED, direction, speed); report.transaction_id.id = 0x1F; break; @@ -371,6 +376,7 @@ ssize_t razer_accessory_attr_write_mode_breath(IOUSBDeviceInterface **usb_dev, c case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: + case USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA: switch(count) { case 3: // Single colour mode report = razer_chroma_extended_matrix_effect_breathing_single(VARSTORE, ZERO_LED, (struct razer_rgb *)&buf[0]); @@ -437,6 +443,7 @@ ssize_t razer_accessory_attr_write_device_mode(IOUSBDeviceInterface **usb_dev, c case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: + case USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA: report.transaction_id.id = 0x1F; break; } @@ -473,6 +480,7 @@ ssize_t razer_accessory_attr_read_device_mode(IOUSBDeviceInterface **usb_dev, ch case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: + case USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA: report.transaction_id.id = 0x1F; break; } @@ -497,6 +505,7 @@ ssize_t razer_accessory_attr_write_set_brightness(IOUSBDeviceInterface **usb_dev case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: + case USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA: report = razer_chroma_extended_matrix_brightness(VARSTORE, ZERO_LED, brightness); report.transaction_id.id = 0x1F; break; @@ -540,6 +549,7 @@ ushort razer_accessory_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev) case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: + case USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA: case USB_DEVICE_ID_RAZER_MOUSE_DOCK: break; @@ -550,4 +560,4 @@ ushort razer_accessory_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev) } return brightness; -} \ No newline at end of file +} diff --git a/src/lib/razerdevice.c b/src/lib/razerdevice.c index 8a3c3ce..0a42b1c 100755 --- a/src/lib/razerdevice.c +++ b/src/lib/razerdevice.c @@ -226,6 +226,7 @@ bool is_accessory(IOUSBDeviceInterface **usb_dev) case USB_DEVICE_ID_RAZER_MOUSE_BUNGEE_V3_CHROMA: case USB_DEVICE_ID_RAZER_BASE_STATION_V2_CHROMA: case USB_DEVICE_ID_RAZER_THUNDERBOLT_4_DOCK_CHROMA: + case USB_DEVICE_ID_RAZER_LAPTOP_STAND_CHROMA: return true; }