diff --git a/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController.cpp b/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController.cpp index 749f55c95..0a97e16af 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController.cpp @@ -17,10 +17,11 @@ #include #include -AuraTUFKeyboardController::AuraTUFKeyboardController(hid_device* dev_handle, const char* path) +AuraTUFKeyboardController::AuraTUFKeyboardController(hid_device* dev_handle, const char* path, uint16_t pid) { dev = dev_handle; location = path; + device_pid = pid; } AuraTUFKeyboardController::~AuraTUFKeyboardController() @@ -63,7 +64,15 @@ std::string AuraTUFKeyboardController::GetVersion() hid_read(dev, usb_buf_out, 65); char version[9]; - snprintf(version, 9, "%02X.%02X.%02X", usb_buf_out[5], usb_buf_out[6], usb_buf_out[7]); + if (device_pid == AURA_TUF_K3_GAMING_PID) + { + snprintf(version, 9, "%02X.%02X.%02X", usb_buf_out[6], usb_buf_out[5], usb_buf_out[4]); + } + else + { + snprintf(version, 9, "%02X.%02X.%02X", usb_buf_out[5], usb_buf_out[6], usb_buf_out[7]); + } + return std::string(version); } diff --git a/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController.h b/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController.h index a631ead66..f3432c27b 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController.h +++ b/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController.h @@ -39,10 +39,17 @@ enum AURA_KEYBOARD_MODE_DIRECT = 15, }; +enum +{ + AURA_TUF_K7_GAMING_PID = 0x18AA, + AURA_TUF_K3_GAMING_PID = 0x194B, +}; + + class AuraTUFKeyboardController { public: - AuraTUFKeyboardController(hid_device* dev_handle, const char* path); + AuraTUFKeyboardController(hid_device* dev_handle, const char* path, uint16_t pid); ~AuraTUFKeyboardController(); std::string GetDeviceLocation(); @@ -76,6 +83,8 @@ public: void AwaitResponse(); void ClearResponses(); + uint16_t device_pid; + private: hid_device* dev; std::string location; diff --git a/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp b/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp index fbbd884b4..bff4efea8 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp @@ -44,6 +44,7 @@ #define AURA_ROG_STRIX_SCOPE_RX_PID 0x1951 #define AURA_ROG_STRIX_SCOPE_TKL_PID 0x190C #define AURA_TUF_K7_GAMING_PID 0x18AA +#define AURA_TUF_K3_GAMING_PID 0x194B /*-----------------------------------------------------------------*\ | MICE - defined in AsusAuraMouseDevices.h | @@ -225,7 +226,7 @@ void DetectAsusAuraTUFUSBKeyboard(hid_device_info* info, const std::string& name if(dev) { - AuraTUFKeyboardController* controller = new AuraTUFKeyboardController(dev, info->path); + AuraTUFKeyboardController* controller = new AuraTUFKeyboardController(dev, info->path, info->product_id); RGBController_AuraTUFKeyboard* rgb_controller = new RGBController_AuraTUFKeyboard(controller); rgb_controller->name = name; ResourceManager::get()->RegisterRGBController(rgb_controller); @@ -253,7 +254,8 @@ REGISTER_HID_DETECTOR_IP("ASUS ROG Strix Flare PNK LTD", DetectAsusAuraUS REGISTER_HID_DETECTOR_IP("ASUS ROG Strix Scope", DetectAsusAuraUSBKeyboards, AURA_USB_VID, AURA_ROG_STRIX_SCOPE_PID, 1, 0xFF00); REGISTER_HID_DETECTOR_IP("ASUS ROG Strix Scope RX", DetectAsusAuraUSBKeyboards, AURA_USB_VID, AURA_ROG_STRIX_SCOPE_RX_PID, 1, 0xFF00); REGISTER_HID_DETECTOR_IP("ASUS ROG Strix Scope TKL", DetectAsusAuraUSBKeyboards, AURA_USB_VID, AURA_ROG_STRIX_SCOPE_TKL_PID, 1, 0xFF00); -REGISTER_HID_DETECTOR_I ("ASUS TUF Gaming K7", DetectAsusAuraTUFUSBKeyboard, AURA_USB_VID, AURA_TUF_K7_GAMING_PID, 1); +REGISTER_HID_DETECTOR_IP("ASUS TUF Gaming K7", DetectAsusAuraTUFUSBKeyboard, AURA_USB_VID, AURA_TUF_K7_GAMING_PID, 1, 0xFF00); +REGISTER_HID_DETECTOR_IP("ASUS TUF Gaming K3", DetectAsusAuraTUFUSBKeyboard, AURA_USB_VID, AURA_TUF_K3_GAMING_PID, 1, 0xFF00); /*-----------------------------------------------------------------*\ | MICE |