From c7616613861facabdc259850766dff45a8254d79 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Mon, 4 Aug 2025 13:37:21 -0500 Subject: [PATCH] Store name in AsusLegacyUSBControllers to avoid setting it in detectors --- .../AsusCerberusKeyboardController.cpp | 8 +++++++- .../AsusCerberusKeyboardController.h | 4 +++- .../RGBController_AsusCerberusKeyboard.cpp | 16 ++++++++-------- .../AsusLegacyUSBControllerDetect.cpp | 12 ++++++------ .../AsusSagarisKeyboardController.cpp | 8 +++++++- .../AsusSagarisKeyboardController.h | 4 +++- .../RGBController_AsusSagarisKeyboard.cpp | 2 +- .../AsusStrixClawController.cpp | 8 +++++++- .../AsusStrixClawController.h | 4 +++- .../RGBController_AsusStrixClaw.cpp | 2 +- 10 files changed, 46 insertions(+), 22 deletions(-) diff --git a/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/AsusCerberusKeyboardController.cpp b/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/AsusCerberusKeyboardController.cpp index c13acad1..9a12e37b 100644 --- a/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/AsusCerberusKeyboardController.cpp +++ b/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/AsusCerberusKeyboardController.cpp @@ -21,10 +21,11 @@ #define ASUS_CERBERUS_KB_PACKET_SIZE 8 -AsusCerberusKeyboardController::AsusCerberusKeyboardController(hid_device* dev_handle, const char* path, unsigned short rev_version) +AsusCerberusKeyboardController::AsusCerberusKeyboardController(hid_device* dev_handle, const char* path, unsigned short rev_version, std::string dev_name) { dev = dev_handle; location = path; + name = dev_name; version = rev_version; } @@ -38,6 +39,11 @@ std::string AsusCerberusKeyboardController::GetDeviceLocation() return("HID: " + location); } +std::string AsusCerberusKeyboardController::GetDeviceName() +{ + return(name); +} + std::string AsusCerberusKeyboardController::GetSerialString() { wchar_t serial_string[128]; diff --git a/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/AsusCerberusKeyboardController.h b/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/AsusCerberusKeyboardController.h index a85e909b..9e4a94f3 100644 --- a/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/AsusCerberusKeyboardController.h +++ b/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/AsusCerberusKeyboardController.h @@ -30,10 +30,11 @@ enum class AsusCerberusKeyboardController { public: - AsusCerberusKeyboardController(hid_device* dev_handle, const char* path, unsigned short rev_version); + AsusCerberusKeyboardController(hid_device* dev_handle, const char* path, unsigned short rev_version, std::string dev_name); ~AsusCerberusKeyboardController(); std::string GetDeviceLocation(); + std::string GetDeviceName(); std::string GetSerialString(); std::string GetVersion(); @@ -47,5 +48,6 @@ public: private: hid_device* dev; std::string location; + std::string name; unsigned short version; }; diff --git a/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/RGBController_AsusCerberusKeyboard.cpp b/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/RGBController_AsusCerberusKeyboard.cpp index 49be5d4f..2d64337c 100644 --- a/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/RGBController_AsusCerberusKeyboard.cpp +++ b/Controllers/AsusLegacyUSBController/AsusCerberusKeyboardController/RGBController_AsusCerberusKeyboard.cpp @@ -176,7 +176,7 @@ static const std::vector led_names = RGBController_AsusCerberusKeyboard::RGBController_AsusCerberusKeyboard(AsusCerberusKeyboardController* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; /*------------------------------------------------------------------------------------------------------*\ | this device has 6 different profiles, but there is no way to fetch them from the device, | @@ -185,13 +185,13 @@ RGBController_AsusCerberusKeyboard::RGBController_AsusCerberusKeyboard(AsusCerbe controller->SetProfile(1); - name = "ASUS Cerberus Keyboard"; - vendor = "ASUS"; - type = DEVICE_TYPE_KEYBOARD; - description = "ASUS Cerberus Keyboard Device"; - location = controller->GetDeviceLocation(); - serial = controller->GetSerialString(); - version = controller->GetVersion(); + name = controller->GetDeviceName(); + vendor = "ASUS"; + type = DEVICE_TYPE_KEYBOARD; + description = "ASUS Cerberus Keyboard Device"; + location = controller->GetDeviceLocation(); + serial = controller->GetSerialString(); + version = controller->GetVersion(); mode Custom; Custom.name = "Custom"; diff --git a/Controllers/AsusLegacyUSBController/AsusLegacyUSBControllerDetect.cpp b/Controllers/AsusLegacyUSBController/AsusLegacyUSBControllerDetect.cpp index 8c5ab8d7..b3bbc421 100644 --- a/Controllers/AsusLegacyUSBController/AsusLegacyUSBControllerDetect.cpp +++ b/Controllers/AsusLegacyUSBController/AsusLegacyUSBControllerDetect.cpp @@ -29,9 +29,9 @@ void DetectAsusCerberusMech(hid_device_info* info, const std::string& name) if(dev) { - AsusCerberusKeyboardController* controller = new AsusCerberusKeyboardController(dev, info->path, info->release_number); + AsusCerberusKeyboardController* controller = new AsusCerberusKeyboardController(dev, info->path, info->release_number, name); RGBController_AsusCerberusKeyboard* rgb_controller = new RGBController_AsusCerberusKeyboard(controller); - rgb_controller->name = name; + ResourceManager::get()->RegisterRGBController(rgb_controller); } } @@ -42,9 +42,9 @@ void DetectAsusSagarisKeyboard(hid_device_info* info, const std::string& name) if(dev) { - AsusSagarisKeyboardController* controller = new AsusSagarisKeyboardController(dev, info->path, info->release_number); + AsusSagarisKeyboardController* controller = new AsusSagarisKeyboardController(dev, info->path, info->release_number, name); RGBController_AsusSagarisKeyboard* rgb_controller = new RGBController_AsusSagarisKeyboard(controller); - rgb_controller->name = name; + ResourceManager::get()->RegisterRGBController(rgb_controller); } } @@ -55,9 +55,9 @@ void DetectAsusStrixClaw(hid_device_info* info, const std::string& name) if(dev) { - StrixClawController* controller = new StrixClawController(dev, info->path); + StrixClawController* controller = new StrixClawController(dev, info->path, name); RGBController_StrixClaw* rgb_controller = new RGBController_StrixClaw(controller); - rgb_controller->name = name; + ResourceManager::get()->RegisterRGBController(rgb_controller); } } diff --git a/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/AsusSagarisKeyboardController.cpp b/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/AsusSagarisKeyboardController.cpp index 24336fb2..dcdf7aa6 100644 --- a/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/AsusSagarisKeyboardController.cpp +++ b/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/AsusSagarisKeyboardController.cpp @@ -20,10 +20,11 @@ #define ASUS_SAGARIS_KB_PACKET_SIZE 65 -AsusSagarisKeyboardController::AsusSagarisKeyboardController(hid_device* dev_handle, const char* path, unsigned short rev_version) +AsusSagarisKeyboardController::AsusSagarisKeyboardController(hid_device* dev_handle, const char* path, unsigned short rev_version, std::string dev_name) { dev = dev_handle; location = path; + name = dev_name; version = rev_version; } @@ -42,6 +43,11 @@ std::string AsusSagarisKeyboardController::GetDeviceLocation() return("HID: " + location); } +std::string AsusSagarisKeyboardController::GetDeviceName() +{ + return(name); +} + std::string AsusSagarisKeyboardController::GetSerialString() { wchar_t serial_string[128]; diff --git a/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/AsusSagarisKeyboardController.h b/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/AsusSagarisKeyboardController.h index 9178e7a9..2698bee3 100644 --- a/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/AsusSagarisKeyboardController.h +++ b/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/AsusSagarisKeyboardController.h @@ -54,11 +54,12 @@ typedef struct class AsusSagarisKeyboardController { public: - AsusSagarisKeyboardController(hid_device* dev_handle, const char* path, unsigned short rev_version); + AsusSagarisKeyboardController(hid_device* dev_handle, const char* path, unsigned short rev_version, std::string dev_name); ~AsusSagarisKeyboardController(); std::string GetVersion(); std::string GetDeviceLocation(); + std::string GetDeviceName(); std::string GetSerialString(); sagaris_mode GetMode(); @@ -73,5 +74,6 @@ public: private: hid_device* dev; std::string location; + std::string name; unsigned short version; }; diff --git a/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/RGBController_AsusSagarisKeyboard.cpp b/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/RGBController_AsusSagarisKeyboard.cpp index 12ac8f90..ca0372d8 100644 --- a/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/RGBController_AsusSagarisKeyboard.cpp +++ b/Controllers/AsusLegacyUSBController/AsusSagarisKeyboardController/RGBController_AsusSagarisKeyboard.cpp @@ -28,7 +28,7 @@ RGBController_AsusSagarisKeyboard::RGBController_AsusSagarisKeyboard(AsusSagaris { controller = controller_ptr; - name = "ASUS Sagaris Keyboard"; + name = controller->GetDeviceName(); vendor = "ASUS"; type = DEVICE_TYPE_KEYBOARD; description = "ASUS Sagaris Keyboard Device"; diff --git a/Controllers/AsusLegacyUSBController/AsusStrixClawController/AsusStrixClawController.cpp b/Controllers/AsusLegacyUSBController/AsusStrixClawController/AsusStrixClawController.cpp index 7a5a3f01..026242ff 100644 --- a/Controllers/AsusLegacyUSBController/AsusStrixClawController/AsusStrixClawController.cpp +++ b/Controllers/AsusLegacyUSBController/AsusStrixClawController/AsusStrixClawController.cpp @@ -14,10 +14,11 @@ #include "AsusStrixClawController.h" #include "StringUtils.h" -StrixClawController::StrixClawController(hid_device* dev_handle, const char* path) +StrixClawController::StrixClawController(hid_device* dev_handle, const char* path, std::string dev_name) { dev = dev_handle; location = path; + name = dev_name; } StrixClawController::~StrixClawController() @@ -30,6 +31,11 @@ std::string StrixClawController::GetDeviceLocation() return("HID: " + location); } +std::string StrixClawController::GetDeviceName() +{ + return(name); +} + std::string StrixClawController::GetSerialString() { wchar_t serial_string[HID_MAX_STR]; diff --git a/Controllers/AsusLegacyUSBController/AsusStrixClawController/AsusStrixClawController.h b/Controllers/AsusLegacyUSBController/AsusStrixClawController/AsusStrixClawController.h index bd9db51a..c1373da2 100644 --- a/Controllers/AsusLegacyUSBController/AsusStrixClawController/AsusStrixClawController.h +++ b/Controllers/AsusLegacyUSBController/AsusStrixClawController/AsusStrixClawController.h @@ -20,10 +20,11 @@ class StrixClawController { public: - StrixClawController(hid_device* dev_handle, const char* path); + StrixClawController(hid_device* dev_handle, const char* path, std::string dev_name); virtual ~StrixClawController(); std::string GetDeviceLocation(); + std::string GetDeviceName(); std::string GetSerialString(); std::string GetVersion(); @@ -33,4 +34,5 @@ public: private: hid_device* dev; std::string location; + std::string name; }; diff --git a/Controllers/AsusLegacyUSBController/AsusStrixClawController/RGBController_AsusStrixClaw.cpp b/Controllers/AsusLegacyUSBController/AsusStrixClawController/RGBController_AsusStrixClaw.cpp index 4570b539..30e505c6 100644 --- a/Controllers/AsusLegacyUSBController/AsusStrixClawController/RGBController_AsusStrixClaw.cpp +++ b/Controllers/AsusLegacyUSBController/AsusStrixClawController/RGBController_AsusStrixClaw.cpp @@ -26,7 +26,7 @@ RGBController_StrixClaw::RGBController_StrixClaw(StrixClawController* controller { controller = controller_ptr; - name = "ASUS ROG Strix Claw"; + name = controller->GetDeviceName(); vendor = "ASUS"; type = DEVICE_TYPE_MOUSE; description = "ASUS Legacy Mouse Device";