From 6cdb3c5c7b8af1911d08794ca1e8e725f13bec01 Mon Sep 17 00:00:00 2001 From: WrathofthePast <75559873+WrathofthePast@users.noreply.github.com> Date: Thu, 24 Feb 2022 12:27:57 -0500 Subject: [PATCH] Orochi V2 Support Adds support for both Bluetooth and Receiver connections DPI Stage support was excluded as librazermacos does not yet support the feature. I'm working on it though :) --- src/include/razermouse_driver.h | 2 ++ src/lib/razerdevice.c | 2 ++ src/lib/razermouse_driver.c | 10 ++++++++++ 3 files changed, 14 insertions(+) diff --git a/src/include/razermouse_driver.h b/src/include/razermouse_driver.h index f80345b..ac3dc7a 100644 --- a/src/include/razermouse_driver.h +++ b/src/include/razermouse_driver.h @@ -76,6 +76,8 @@ #define USB_DEVICE_ID_RAZER_NAGA_LEFT_HANDED_2020 0x008D #define USB_DEVICE_ID_RAZER_DEATHADDER_ESSENTIAL_2021 0x0098 #define USB_DEVICE_ID_RAZER_BASILISK_V3 0x0099 +#define USB_DEVICE_ID_RAZER_OROCHI_V2_RECEIVER 0x0094 +#define USB_DEVICE_ID_RAZER_OROCHI_V2 0x0095 /* Each keyboard report has 90 bytes*/ #define RAZER_REPORT_LEN 0x5A diff --git a/src/lib/razerdevice.c b/src/lib/razerdevice.c index 3f0896b..d2d9bdd 100755 --- a/src/lib/razerdevice.c +++ b/src/lib/razerdevice.c @@ -138,6 +138,8 @@ bool is_mouse(IOUSBDeviceInterface **usb_dev) case USB_DEVICE_ID_RAZER_DEATHADDER_ESSENTIAL_2021: case USB_DEVICE_ID_RAZER_BASILISK_V3: case USB_DEVICE_ID_RAZER_BASILISK_ESSENTIAL: + case USB_DEVICE_ID_RAZER_OROCHI_V2_RECEIVER: + case USB_DEVICE_ID_RAZER_OROCHI_V2_BLUETOOTH: return true; } diff --git a/src/lib/razermouse_driver.c b/src/lib/razermouse_driver.c index 336f2af..847a3df 100644 --- a/src/lib/razermouse_driver.c +++ b/src/lib/razermouse_driver.c @@ -65,6 +65,8 @@ static int razer_get_report(IOUSBDeviceInterface **usb_dev, struct razer_report break; case USB_DEVICE_ID_RAZER_ATHERIS_RECEIVER: + case USB_DEVICE_ID_RAZER_OROCHI_V2_RECEIVER: + case USB_DEVICE_ID_RAZER_OROCHI_V2_BLUETOOTH: return razer_get_usb_response(usb_dev, 0x00, request_report, 0x00, response_report, RAZER_ATHERIS_RECEIVER_WAIT_MIN_US); break; @@ -1706,6 +1708,8 @@ ssize_t razer_attr_read_get_battery(IOUSBDeviceInterface **usb_dev, char *buf) case USB_DEVICE_ID_RAZER_ATHERIS_RECEIVER: case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRELESS_RECEIVER: case USB_DEVICE_ID_RAZER_LANCEHEAD_WIRELESS_WIRED: + case USB_DEVICE_ID_RAZER_OROCHI_V2_RECEIVER: + case USB_DEVICE_ID_RAZER_OROCHI_V2_BLUETOOTH: report.transaction_id.id = 0x1f; break; } @@ -1729,6 +1733,8 @@ ssize_t razer_attr_read_is_charging(IOUSBDeviceInterface **usb_dev, char *buf) // Wireless mice that don't support is_charging // Use AA batteries case USB_DEVICE_ID_RAZER_ATHERIS_RECEIVER: + case USB_DEVICE_ID_RAZER_OROCHI_V2_RECEIVER: + case USB_DEVICE_ID_RAZER_OROCHI_V2_BLUETOOTH: return sprintf(buf, "0\n"); break; @@ -1803,6 +1809,8 @@ ushort razer_attr_read_poll_rate(IOUSBDeviceInterface **usb_dev) case USB_DEVICE_ID_RAZER_ATHERIS_RECEIVER: case USB_DEVICE_ID_RAZER_BASILISK_V2: case USB_DEVICE_ID_RAZER_BASILISK_V3: + case USB_DEVICE_ID_RAZER_OROCHI_V2_RECEIVER: + case USB_DEVICE_ID_RAZER_OROCHI_V2_BLUETOOTH: report.transaction_id.id = 0x1f; break; } @@ -1894,6 +1902,8 @@ void razer_attr_write_poll_rate(IOUSBDeviceInterface **usb_dev, ushort polling_r case USB_DEVICE_ID_RAZER_ATHERIS_RECEIVER: case USB_DEVICE_ID_RAZER_BASILISK_V2: case USB_DEVICE_ID_RAZER_BASILISK_V3: + case USB_DEVICE_ID_RAZER_OROCHI_V2_RECEIVER: + case USB_DEVICE_ID_RAZER_OROCHI_V2_BLUETOOTH: report.transaction_id.id = 0x1f; break; }