From 59c2ca20523f89a55b6a59ab5c8cd9c598d52d10 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Fri, 15 Aug 2025 11:40:20 -0500 Subject: [PATCH] Store name in CorsairPeripheralControllers to avoid setting it in detectors --- .../CorsairK55RGBPROXTController.cpp | 7 +++--- .../CorsairK55RGBPROXTController.h | 7 +++--- .../CorsairK65MiniController.cpp | 7 +++--- .../CorsairK65MiniController.h | 5 ++-- .../CorsairPeripheralController.cpp | 8 ++----- .../CorsairPeripheralController.h | 3 +-- .../CorsairPeripheralControllerDetect.cpp | 11 ++++----- .../RGBController_CorsairK55RGBPROXT.cpp | 14 +++++------ .../RGBController_CorsairK65Mini.cpp | 23 +++++++++---------- 9 files changed, 40 insertions(+), 45 deletions(-) diff --git a/Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.cpp b/Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.cpp index 6a4f9d6a..70847d25 100644 --- a/Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.cpp +++ b/Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.cpp @@ -38,10 +38,11 @@ static const unsigned char filler[] = 0x6D }; -CorsairK55RGBPROXTController::CorsairK55RGBPROXTController(hid_device* dev_handle, const char* path) +CorsairK55RGBPROXTController::CorsairK55RGBPROXTController(hid_device* dev_handle, const char* path, std::string dev_name) { dev = dev_handle; location = path; + name = dev_name; LightingControl(); } @@ -56,9 +57,9 @@ std::string CorsairK55RGBPROXTController::GetDeviceLocation() return("HID: " + location); } -std::string CorsairK55RGBPROXTController::GetFirmwareString() +std::string CorsairK55RGBPROXTController::GetNameString() { - return ""; + return(name); } std::string CorsairK55RGBPROXTController::GetSerialString() diff --git a/Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.h b/Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.h index bd0898c7..c01b32e1 100644 --- a/Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.h +++ b/Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.h @@ -16,10 +16,11 @@ class CorsairK55RGBPROXTController { public: - CorsairK55RGBPROXTController(hid_device* dev_handle, const char* path); + CorsairK55RGBPROXTController(hid_device* dev_handle, const char* path, std::string dev_name); ~CorsairK55RGBPROXTController(); + std::string GetDeviceLocation(); - std::string GetFirmwareString(); + std::string GetNameString(); std::string GetSerialString(); void SetLEDs(std::vector colors); @@ -79,8 +80,8 @@ public: private: hid_device* dev; - std::string firmware_version; std::string location; + std::string name; void LightingControl(); }; diff --git a/Controllers/CorsairPeripheralController/CorsairK65MiniController.cpp b/Controllers/CorsairPeripheralController/CorsairK65MiniController.cpp index f7d62d74..8853059f 100644 --- a/Controllers/CorsairPeripheralController/CorsairK65MiniController.cpp +++ b/Controllers/CorsairPeripheralController/CorsairK65MiniController.cpp @@ -11,10 +11,11 @@ #include "LogManager.h" #include "StringUtils.h" -CorsairK65MiniController::CorsairK65MiniController(hid_device* dev_handle, const char* path) +CorsairK65MiniController::CorsairK65MiniController(hid_device* dev_handle, const char* path, std::string dev_name) { dev = dev_handle; location = path; + name = dev_name; LightingControl(); } @@ -29,9 +30,9 @@ std::string CorsairK65MiniController::GetDeviceLocation() return("HID: " + location); } -std::string CorsairK65MiniController::GetFirmwareString() +std::string CorsairK65MiniController::GetName() { - return ""; + return(name); } std::string CorsairK65MiniController::GetSerialString() diff --git a/Controllers/CorsairPeripheralController/CorsairK65MiniController.h b/Controllers/CorsairPeripheralController/CorsairK65MiniController.h index 14269334..7729ed3e 100644 --- a/Controllers/CorsairPeripheralController/CorsairK65MiniController.h +++ b/Controllers/CorsairPeripheralController/CorsairK65MiniController.h @@ -19,11 +19,10 @@ class CorsairK65MiniController { public: - CorsairK65MiniController(hid_device* dev_handle, const char* path); + CorsairK65MiniController(hid_device* dev_handle, const char* path, std::string dev_name); ~CorsairK65MiniController(); std::string GetDeviceLocation(); - std::string GetFirmwareString(); std::string GetName(); std::string GetSerialString(); void SetLEDs(std::vector colors, std::vector positions); @@ -31,8 +30,8 @@ public: private: hid_device* dev; - std::string firmware_version; std::string location; + std::string name; void LightingControl(); }; diff --git a/Controllers/CorsairPeripheralController/CorsairPeripheralController.cpp b/Controllers/CorsairPeripheralController/CorsairPeripheralController.cpp index 3eebeb3e..0ecfb8c8 100644 --- a/Controllers/CorsairPeripheralController/CorsairPeripheralController.cpp +++ b/Controllers/CorsairPeripheralController/CorsairPeripheralController.cpp @@ -66,10 +66,11 @@ static unsigned int key_mapping_k70_mk2_plat_iso[] = { 0x3f, 0x41, 0x42, 0x50, 0 #define CORSAIR_PERIPHERAL_CONTROLLER_NAME "Corsair peripheral" -CorsairPeripheralController::CorsairPeripheralController(hid_device* dev_handle, const char* path) +CorsairPeripheralController::CorsairPeripheralController(hid_device* dev_handle, const char* path, std::string dev_name) { dev = dev_handle; location = path; + name = dev_name; ReadFirmwareInfo(); @@ -332,11 +333,6 @@ void CorsairPeripheralController::SetLEDsKeyboardLimited(std::vector c SubmitKeyboardLimitedColors(216); } -void CorsairPeripheralController::SetName(std::string device_name) -{ - name = device_name; -} - void CorsairPeripheralController::SwitchMode(bool software) { if(software) diff --git a/Controllers/CorsairPeripheralController/CorsairPeripheralController.h b/Controllers/CorsairPeripheralController/CorsairPeripheralController.h index dcced4ee..fc16e7b2 100644 --- a/Controllers/CorsairPeripheralController/CorsairPeripheralController.h +++ b/Controllers/CorsairPeripheralController/CorsairPeripheralController.h @@ -94,7 +94,7 @@ enum class CorsairPeripheralController { public: - CorsairPeripheralController(hid_device* dev_handle, const char* path); + CorsairPeripheralController(hid_device* dev_handle, const char* path, std::string dev_name); ~CorsairPeripheralController(); int GetLogicalLayout(); @@ -110,7 +110,6 @@ public: void SetLEDsKeyboardLimited(std::vector colors); void SetLEDsMouse(std::vector colors); void SetLEDsMousemat(std::vector colors); - void SetName(std::string device_name); void SetHardwareMode ( int mode_value, diff --git a/Controllers/CorsairPeripheralController/CorsairPeripheralControllerDetect.cpp b/Controllers/CorsairPeripheralController/CorsairPeripheralControllerDetect.cpp index be5cad61..67d32f8d 100644 --- a/Controllers/CorsairPeripheralController/CorsairPeripheralControllerDetect.cpp +++ b/Controllers/CorsairPeripheralController/CorsairPeripheralControllerDetect.cpp @@ -112,9 +112,9 @@ void DetectCorsairK55RGBPROXTControllers(hid_device_info* info, const std::strin if(dev) { - CorsairK55RGBPROXTController* controller = new CorsairK55RGBPROXTController(dev, info->path); + CorsairK55RGBPROXTController* controller = new CorsairK55RGBPROXTController(dev, info->path, name); RGBController_CorsairK55RGBPROXT* rgb_controller = new RGBController_CorsairK55RGBPROXT(controller); - rgb_controller->name = name; + ResourceManager::get()->RegisterRGBController(rgb_controller); } } /* DetectCorsairK55RGBPROXTControllers() */ @@ -125,9 +125,9 @@ void DetectCorsairK65MiniControllers(hid_device_info* info, const std::string& n if(dev) { - CorsairK65MiniController* controller = new CorsairK65MiniController(dev, info->path); + CorsairK65MiniController* controller = new CorsairK65MiniController(dev, info->path, name); RGBController_CorsairK65Mini* rgb_controller = new RGBController_CorsairK65Mini(controller); - rgb_controller->name = name; + ResourceManager::get()->RegisterRGBController(rgb_controller); } } /* DetectCorsairK65MiniControllers() */ @@ -147,8 +147,7 @@ void DetectCorsairPeripheralControllers(hid_device_info* info, const std::string { LOG_DEBUG("[%s] Device opened. VID/PID %02X:%02X", CORSAIR_PERIPHERAL_CONTROLLER_NAME, info->vendor_id , info->product_id); - CorsairPeripheralController* controller = new CorsairPeripheralController(dev, info->path); - controller->SetName(name); + CorsairPeripheralController* controller = new CorsairPeripheralController(dev, info->path, name); if(controller->GetDeviceType() != DEVICE_TYPE_UNKNOWN) { diff --git a/Controllers/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.cpp b/Controllers/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.cpp index d9237685..34834ca6 100644 --- a/Controllers/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.cpp +++ b/Controllers/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.cpp @@ -202,14 +202,14 @@ std::vector key_names = RGBController_CorsairK55RGBPROXT::RGBController_CorsairK55RGBPROXT(CorsairK55RGBPROXTController* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; - vendor = "Corsair"; - description = "Corsair K55 RGB PRO XT Keyboard Device"; - type = DEVICE_TYPE_KEYBOARD; - version = controller->GetFirmwareString(); - location = controller->GetDeviceLocation(); - serial = controller->GetSerialString(); + name = controller->GetNameString(); + vendor = "Corsair"; + description = "Corsair K55 RGB PRO XT Keyboard Device"; + type = DEVICE_TYPE_KEYBOARD; + location = controller->GetDeviceLocation(); + serial = controller->GetSerialString(); mode Direct; Direct.name = "Direct"; diff --git a/Controllers/CorsairPeripheralController/RGBController_CorsairK65Mini.cpp b/Controllers/CorsairPeripheralController/RGBController_CorsairK65Mini.cpp index a945be6f..e036afa0 100644 --- a/Controllers/CorsairPeripheralController/RGBController_CorsairK65Mini.cpp +++ b/Controllers/CorsairPeripheralController/RGBController_CorsairK65Mini.cpp @@ -136,21 +136,20 @@ std::vector> keys = RGBController_CorsairK65Mini::RGBController_CorsairK65Mini(CorsairK65MiniController* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; - name = "Corsair K65 Mini Keyboard Device"; - vendor = "Corsair"; - description = name; - type = DEVICE_TYPE_KEYBOARD; - version = controller->GetFirmwareString(); - location = controller->GetDeviceLocation(); - serial = controller->GetSerialString(); + name = controller->GetName(); + vendor = "Corsair"; + description = "Corsair K65 Mini Keyboard Device"; + type = DEVICE_TYPE_KEYBOARD; + location = controller->GetDeviceLocation(); + serial = controller->GetSerialString(); mode Direct; - Direct.name = "Direct"; - Direct.value = 0; - Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Direct.color_mode = MODE_COLORS_PER_LED; + Direct.name = "Direct"; + Direct.value = 0; + Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Direct.color_mode = MODE_COLORS_PER_LED; modes.push_back(Direct); SetupZones();