aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorWrathofthePast <[email protected]>2022-02-26 16:25:53 -0500
committerGitHub <[email protected]>2022-02-26 16:25:53 -0500
commit03d09ece2b5b74e6d8bbffaaaafc231c6a708fb7 (patch)
treead37a62f0757d28f283e70ede36803806e39bd9d /src/lib
parentf3208c850e3122e2c862580ac8cb2d4ea8c3bbb5 (diff)
parent9404d4475fff9656c6a4307c642507817b8eb485 (diff)
downloadlibrazermacos-03d09ece2b5b74e6d8bbffaaaafc231c6a708fb7.tar.xz
librazermacos-03d09ece2b5b74e6d8bbffaaaafc231c6a708fb7.zip
Merge branch '1kc:master' into master
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/razerchromacommon.c6
-rw-r--r--src/lib/razercommon.c3
-rw-r--r--src/lib/razermouse_driver.c11
3 files changed, 17 insertions, 3 deletions
diff --git a/src/lib/razerchromacommon.c b/src/lib/razerchromacommon.c
index 6f6410e..1bc6b8a 100644
--- a/src/lib/razerchromacommon.c
+++ b/src/lib/razerchromacommon.c
@@ -552,6 +552,8 @@ struct razer_report razer_chroma_extended_matrix_effect_wave(unsigned char varia
// Others use values 0x01, 0x02
direction = clamp_u8(direction, 0x00, 0x02);
+ // Razer has also added a "Fast Wave" effect for at least one device
+ // which uses the same effect command but a speed parameter of 0x10
report.arguments[3] = direction;
report.arguments[4] = speed; // Speed, lower values are faster (). The default used to be 0x28
return report;
@@ -1070,8 +1072,8 @@ struct razer_report razer_chroma_misc_set_dpi_xy(unsigned char variable_storage,
struct razer_report report = get_razer_report(0x04, 0x05, 0x07);
// Keep the DPI within bounds
- dpi_x = clamp_u16(dpi_x, 128, 20000);
- dpi_y = clamp_u16(dpi_y, 128, 20000);
+ dpi_x = clamp_u16(dpi_x, 100, 26000);
+ dpi_y = clamp_u16(dpi_y, 100, 26000);
report.arguments[0] = VARSTORE;
diff --git a/src/lib/razercommon.c b/src/lib/razercommon.c
index 4c8424a..c888445 100644
--- a/src/lib/razercommon.c
+++ b/src/lib/razercommon.c
@@ -121,7 +121,8 @@ struct razer_report get_empty_razer_report(void) {
* The checksum is generated by XORing all the bytes in the report starting
* at byte number 2 (0 based) and ending at byte 88.
*/
-unsigned char razer_calculate_crc(struct razer_report *report) {
+unsigned char razer_calculate_crc(struct razer_report *report)
+{
/*second to last byte of report is a simple checksum*/
/*just xor all bytes up with overflow and you are done*/
unsigned char crc = 0;
diff --git a/src/lib/razermouse_driver.c b/src/lib/razermouse_driver.c
index a10521e..336f2af 100644
--- a/src/lib/razermouse_driver.c
+++ b/src/lib/razermouse_driver.c
@@ -64,6 +64,10 @@ static int razer_get_report(IOUSBDeviceInterface **usb_dev, struct razer_report
return razer_get_usb_response(usb_dev, 0x00, request_report, 0x00, response_report, RAZER_NEW_MOUSE_RECEIVER_WAIT_MIN_US);
break;
+ case USB_DEVICE_ID_RAZER_ATHERIS_RECEIVER:
+ return razer_get_usb_response(usb_dev, 0x00, request_report, 0x00, response_report, RAZER_ATHERIS_RECEIVER_WAIT_MIN_US);
+ break;
+
case USB_DEVICE_ID_RAZER_VIPER_ULTIMATE_WIRELESS:
case USB_DEVICE_ID_RAZER_VIPER_ULTIMATE_WIRED:
case USB_DEVICE_ID_RAZER_NAGA_TRINITY:
@@ -1699,6 +1703,7 @@ ssize_t razer_attr_read_get_battery(IOUSBDeviceInterface **usb_dev, char *buf)
break;
case USB_DEVICE_ID_RAZER_BASILISK_ULTIMATE_RECEIVER:
case USB_DEVICE_ID_RAZER_BASILISK_ULTIMATE:
+ case USB_DEVICE_ID_RAZER_ATHERIS_RECEIVER:
case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRELESS_RECEIVER:
case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRELESS_WIRED:
report.transaction_id.id = 0x1f;
@@ -1721,6 +1726,12 @@ ssize_t razer_attr_read_is_charging(IOUSBDeviceInterface **usb_dev, char *buf)
(*usb_dev)->GetDeviceProduct(usb_dev, &product);
switch(product) {
+ // Wireless mice that don't support is_charging
+ // Use AA batteries
+ case USB_DEVICE_ID_RAZER_ATHERIS_RECEIVER:
+ return sprintf(buf, "0\n");
+ break;
+
case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRED:
case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRELESS:
case USB_DEVICE_ID_RAZER_MAMBA_WIRELESS_RECEIVER: