diff options
| author | WrathofthePast <[email protected]> | 2022-02-25 15:23:05 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-02-25 20:23:05 +0000 |
| commit | 9404d4475fff9656c6a4307c642507817b8eb485 (patch) | |
| tree | ad37a62f0757d28f283e70ede36803806e39bd9d /src/lib | |
| parent | 0d112063ea18a1b6fd3f858b9eaab9d090c39df2 (diff) | |
| download | librazermacos-9404d4475fff9656c6a4307c642507817b8eb485.tar.xz librazermacos-9404d4475fff9656c6a4307c642507817b8eb485.zip | |
Parity improvements with openrazer and bug fixes (#28)
* Parity improvements with openrazer
- Allows Basilisk V3 to utilize its full 26000 DPI (this was missed in the PR that added support)
- Fixes the minimum DPI
- Prepares files to be setup as dependencies of openrazer
* Update razermouse_driver.c
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/razerchromacommon.c | 6 | ||||
| -rw-r--r-- | src/lib/razercommon.c | 3 | ||||
| -rw-r--r-- | src/lib/razermouse_driver.c | 11 |
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: |
