Skip to content

Commit

Permalink
Added Razer Laptop Stand
Browse files Browse the repository at this point in the history
Tested and confirmed as working.  Added support for the Razer Laptop
Stand with support for static, spectrum, breating and wave.
  • Loading branch information
j-maynard committed Mar 21, 2023
1 parent 325c96a commit ef39c0a
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/include/razeraccessory_driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
#endif
12 changes: 11 additions & 1 deletion src/lib/razeraccessory_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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]);
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand All @@ -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;
Expand Down Expand Up @@ -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;

Expand All @@ -550,4 +560,4 @@ ushort razer_accessory_attr_read_set_brightness(IOUSBDeviceInterface **usb_dev)
}

return brightness;
}
}
1 change: 1 addition & 0 deletions src/lib/razerdevice.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down

0 comments on commit ef39c0a

Please sign in to comment.