diff --git a/Controllers/AsusAuraUSBController/AsusAuraMouseController.cpp b/Controllers/AsusAuraUSBController/AsusAuraMouseController.cpp index aba443cfa..a33cadd38 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraMouseController.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraMouseController.cpp @@ -46,14 +46,14 @@ std::string AuraMouseController::GetSerialString() std::string AuraMouseController::GetVersion(bool wireless, int protocol) { - unsigned char usb_buf[65]; + unsigned char usb_buf[ASUS_AURA_MOUSE_PACKET_SIZE]; memset(usb_buf, 0x00, sizeof(usb_buf)); usb_buf[0x00] = 0x00; usb_buf[0x01] = 0x12; - hid_write(dev, usb_buf, 65); + hid_write(dev, usb_buf, ASUS_AURA_MOUSE_PACKET_SIZE); - unsigned char usb_buf_out[65]; - hid_read(dev, usb_buf_out, 65); + unsigned char usb_buf_out[ASUS_AURA_MOUSE_PACKET_SIZE]; + hid_read(dev, usb_buf_out, ASUS_AURA_MOUSE_PACKET_SIZE); std::string str; @@ -107,6 +107,14 @@ void AuraMouseController::SendUpdate unsigned char brightness ) { + int bytes_read = 1; + unsigned char usb_buf_flush[ASUS_AURA_MOUSE_PACKET_SIZE]; + + while(bytes_read > 0) + { + bytes_read = hid_read_timeout(dev, usb_buf_flush, ASUS_AURA_MOUSE_PACKET_SIZE, 0); + } + unsigned char usb_buf[ASUS_AURA_MOUSE_PACKET_SIZE]; /*-----------------------------------------------------*\ @@ -127,6 +135,7 @@ void AuraMouseController::SendUpdate usb_buf[0x07] = red; usb_buf[0x08] = grn; usb_buf[0x09] = blu; + if (device_pid == AURA_ROG_GLADIUS_II_ORIGIN_PNK_LTD_PID) { usb_buf[0x0A] = 0; @@ -147,4 +156,7 @@ void AuraMouseController::SendUpdate | Send packet | \*-----------------------------------------------------*/ hid_write(dev, usb_buf, ASUS_AURA_MOUSE_PACKET_SIZE); + + unsigned char usb_buf_out[ASUS_AURA_MOUSE_PACKET_SIZE]; + hid_read(dev, usb_buf_out, ASUS_AURA_MOUSE_PACKET_SIZE); } diff --git a/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h b/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h index 3ef430bbe..5890e0538 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h +++ b/Controllers/AsusAuraUSBController/AsusAuraMouseDevices.h @@ -20,7 +20,7 @@ #define AURA_ROG_GLADIUS_II_WIRELESS_2_PID 0x18A0 #define AURA_ROG_CHAKRAM_WIRELESS_PID 0x18E5 #define AURA_ROG_CHAKRAM_WIRED_1_PID 0x18E3 -#define AURA_ROG_CHAKRAM_WIRED_2_PID 0x1958 +#define AURA_ROG_CHAKRAM_CORE_PID 0x1958 #define AURA_ROG_PUGIO_PID 0x1846 #define AURA_ROG_PUGIO_II_WIRED_PID 0x1906 #define AURA_ROG_PUGIO_II_WIRELESS_PID 0x1908 @@ -168,14 +168,14 @@ static std::map aura_mouse_devices = } }, { - AURA_ROG_CHAKRAM_WIRED_2_PID, // ROG Chakram Wired 2 + AURA_ROG_CHAKRAM_CORE_PID, // ROG Chakram Core { - 15, - 1, + 0, + 0, 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_MOUSE_ZONE_LOGO, AURA_MOUSE_ZONE_SCROLL }, + { 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 62d609053..1a21cfb8f 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp @@ -225,7 +225,7 @@ REGISTER_HID_DETECTOR_IP("ASUS ROG Gladius II Wireless", DetectAsusAuraUS REGISTER_HID_DETECTOR_IP("ASUS ROG Gladius II Wireless", DetectAsusAuraUSBMice, AURA_USB_VID, AURA_ROG_GLADIUS_II_WIRELESS_2_PID, 2, 0xFF01); 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 (Wired)", DetectAsusAuraUSBMice, AURA_USB_VID, AURA_ROG_CHAKRAM_WIRED_2_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 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 f832a552b..d37c97bb8 100644 --- a/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.cpp +++ b/Controllers/AsusAuraUSBController/RGBController_AsusAuraMouse.cpp @@ -191,9 +191,9 @@ void RGBController_AuraMouse::ResizeZone(int /*zone*/, int /*new_size*/) void RGBController_AuraMouse::DeviceUpdateLEDs() { - for(std::vector::iterator led_it = leds.begin(); led_it != leds.end(); led_it++) + for(unsigned int zone_index = 0; zone_index < zones.size(); zone_index++) { - UpdateSingleLED(led_it->value); + UpdateSingleLED(zone_index); } }