diff --git a/Controllers/AsusAuraUSBController/AsusAuraMouseController.cpp b/Controllers/AsusAuraUSBController/AsusAuraMouseController.cpp index 9aa35b7d..28954f9b 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraMouseController.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraMouseController.cpp @@ -67,15 +67,17 @@ std::string AuraMouseController::GetVersion(bool wireless, int protocol) break; case 1: + case 2: { char version[9]; - int offset = (wireless ? 13 : 4); + int wireless_offset = (protocol == 2 ? 14 : 13); + int offset = (wireless ? wireless_offset : 4); snprintf(version, 9, "%2X.%02X.%02X", usb_buf_out[offset + 2], usb_buf_out[offset + 1], usb_buf_out[offset]); str = std::string(version); } break; - case 2: + case 3: { unsigned char* offset = usb_buf_out + (wireless ? 13 : 4); str = std::string(offset, offset + 4); @@ -83,7 +85,7 @@ std::string AuraMouseController::GetVersion(bool wireless, int protocol) } break; - case 3: + case 4: { char version[16]; int offset = (wireless ? 13 : 4); diff --git a/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h b/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h index 9d327c20..ed3e9d4e 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h +++ b/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h @@ -25,6 +25,8 @@ #define AURA_ROG_CHAKRAM_WIRELESS_PID 0x18E5 #define AURA_ROG_CHAKRAM_WIRED_1_PID 0x18E3 #define AURA_ROG_CHAKRAM_CORE_PID 0x1958 +#define AURA_ROG_CHAKRAM_X_USB_PID 0x1A18 +#define AURA_ROG_CHAKRAM_X_2_4_PID 0x1A1A #define AURA_ROG_PUGIO_PID 0x1846 #define AURA_ROG_PUGIO_II_WIRED_PID 0x1906 #define AURA_ROG_PUGIO_II_WIRELESS_PID 0x1908 @@ -266,6 +268,32 @@ static std::map aura_mouse_devices = { AURA_MOUSE_MODE_STATIC, AURA_MOUSE_MODE_BREATHING, AURA_MOUSE_MODE_SPECTRUM, AURA_MOUSE_MODE_REACTIVE } } }, + { + AURA_ROG_CHAKRAM_X_USB_PID, // ROG Chakram X USB + { + 0, + 0, + 0, + 4, + false, + 1, + { AURA_MOUSE_ZONE_LOGO, AURA_MOUSE_ZONE_SCROLL, AURA_MOUSE_ZONE_UNDERGLOW }, + { AURA_MOUSE_MODE_STATIC, AURA_MOUSE_MODE_BREATHING, AURA_MOUSE_MODE_SPECTRUM, AURA_MOUSE_MODE_WAVE, AURA_MOUSE_MODE_REACTIVE, AURA_MOUSE_MODE_COMET, AURA_MOUSE_MODE_BATTERY } + } + }, + { + AURA_ROG_CHAKRAM_X_2_4_PID, // ROG Chakram X 2.4GHz Dongle + { + 255, + 1, + 0, + 64, + true, + 2, + { AURA_MOUSE_ZONE_LOGO, AURA_MOUSE_ZONE_SCROLL, AURA_MOUSE_ZONE_UNDERGLOW }, + { AURA_MOUSE_MODE_STATIC, AURA_MOUSE_MODE_BREATHING, AURA_MOUSE_MODE_SPECTRUM, AURA_MOUSE_MODE_WAVE, AURA_MOUSE_MODE_REACTIVE, AURA_MOUSE_MODE_COMET, AURA_MOUSE_MODE_BATTERY } + } + }, { AURA_ROG_PUGIO_PID, // ROG Pugio { @@ -313,7 +341,7 @@ static std::map aura_mouse_devices = 0, 4, false, - 3, + 4, { AURA_MOUSE_ZONE_LOGO }, { AURA_MOUSE_MODE_STATIC, AURA_MOUSE_MODE_BREATHING, AURA_MOUSE_MODE_SPECTRUM } } @@ -469,7 +497,7 @@ static std::map aura_mouse_devices = 0, 4, false, - 2, + 3, { AURA_MOUSE_ZONE_LOGO }, { AURA_MOUSE_MODE_STATIC, AURA_MOUSE_MODE_BREATHING, AURA_MOUSE_MODE_SPECTRUM, AURA_MOUSE_MODE_REACTIVE } } diff --git a/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp b/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp index 6b92db1f..f96b10a8 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp @@ -324,6 +324,8 @@ REGISTER_HID_DETECTOR_IP("ASUS ROG Gladius III Wireless Bluetooth", DetectAs REGISTER_HID_DETECTOR_IP("ASUS ROG Chakram (Wireless)", DetectAsusAuraUSBMice, AURA_USB_VID, AURA_ROG_CHAKRAM_WIRELESS_PID, 0, 0xFF01); REGISTER_HID_DETECTOR_IP("Asus ROG Chakram (Wired)", DetectAsusAuraUSBMice, AURA_USB_VID, AURA_ROG_CHAKRAM_WIRED_1_PID, 0, 0xFF01); REGISTER_HID_DETECTOR_IP("Asus ROG Chakram Core", DetectAsusAuraUSBMice, AURA_USB_VID, AURA_ROG_CHAKRAM_CORE_PID, 0, 0xFF01); +REGISTER_HID_DETECTOR_IP("Asus ROG Chakram X USB", DetectAsusAuraUSBMice, AURA_USB_VID, AURA_ROG_CHAKRAM_X_USB_PID, 0, 0xFF01); +REGISTER_HID_DETECTOR_IP("Asus ROG Chakram X 2.4GHz", DetectAsusAuraUSBMice, AURA_USB_VID, AURA_ROG_CHAKRAM_X_2_4_PID, 0, 0xFF01); REGISTER_HID_DETECTOR_IP("ASUS ROG Pugio", DetectAsusAuraUSBMice, AURA_USB_VID, AURA_ROG_PUGIO_PID, 2, 0xFF01); REGISTER_HID_DETECTOR_IP("ASUS ROG Pugio II (Wired)", DetectAsusAuraUSBMice, AURA_USB_VID, AURA_ROG_PUGIO_II_WIRED_PID, 0, 0xFF01); REGISTER_HID_DETECTOR_IP("ASUS ROG Pugio II (Wireless)", DetectAsusAuraUSBMice, AURA_USB_VID, AURA_ROG_PUGIO_II_WIRELESS_PID, 0, 0xFF01); diff --git a/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.cpp b/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.cpp index 0b852fbd..c7f278b0 100644 --- a/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.cpp +++ b/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.cpp @@ -29,9 +29,9 @@ static std::string aura_mouse_zone_names[3] RGBController_AuraMouse::RGBController_AuraMouse(AuraMouseController* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; - uint16_t pid = controller->device_pid; + pid = controller->device_pid; name = "ASUS Aura Mouse"; vendor = "ASUS"; @@ -168,8 +168,6 @@ RGBController_AuraMouse::~RGBController_AuraMouse() void RGBController_AuraMouse::SetupZones() { - uint16_t pid = controller->device_pid; - for(std::vector::iterator zone_it = aura_mouse_devices[pid].mouse_zones.begin(); zone_it != aura_mouse_devices[pid].mouse_zones.end(); zone_it++) { zone mouse_zone; @@ -209,7 +207,7 @@ void RGBController_AuraMouse::DeviceUpdateLEDs() void RGBController_AuraMouse::UpdateZoneLEDs(int zone) { - UpdateSingleLED(zone); + DeviceUpdateLEDs(); } void RGBController_AuraMouse::UpdateSingleLED(int led) diff --git a/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.h b/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.h index 183bcad7..0fed1509 100644 --- a/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.h +++ b/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.h @@ -30,4 +30,5 @@ public: private: AuraMouseController* controller; + uint16_t pid; };