From 17a58b4c223f9f6e3812e50d5ff518bbc5ef180e Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Wed, 6 Aug 2025 00:43:05 -0500 Subject: [PATCH] Store name in CorsairLightingNodeController to avoid setting it in detector --- .../CorsairLightingNodeController.cpp | 14 ++++++++++---- .../CorsairLightingNodeController.h | 4 +++- .../CorsairLightingNodeControllerDetect.cpp | 4 ++-- .../RGBController_CorsairLightingNode.cpp | 2 +- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp index 026fb78f..2f02e2e5 100644 --- a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp +++ b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp @@ -19,11 +19,12 @@ using namespace std::chrono_literals; -CorsairLightingNodeController::CorsairLightingNodeController(hid_device* dev_handle, const char* path) +CorsairLightingNodeController::CorsairLightingNodeController(hid_device* dev_handle, const char* path, std::string dev_name) { - dev = dev_handle; - location = path; - guard_manager_ptr = new DeviceGuardManager(new CorsairDeviceGuard()); + dev = dev_handle; + location = path; + name = dev_name; + guard_manager_ptr = new DeviceGuardManager(new CorsairDeviceGuard()); SendFirmwareRequest(); @@ -69,6 +70,11 @@ std::string CorsairLightingNodeController::GetLocationString() return("HID: " + location); } +std::string CorsairLightingNodeController::GetNameString() +{ + return(name); +} + std::string CorsairLightingNodeController::GetSerialString() { wchar_t serial_string[128]; diff --git a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h index b7694f3b..6e5d5b37 100644 --- a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h +++ b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h @@ -88,11 +88,12 @@ enum class CorsairLightingNodeController { public: - CorsairLightingNodeController(hid_device* dev_handle, const char* path); + CorsairLightingNodeController(hid_device* dev_handle, const char* path, std::string dev_name); ~CorsairLightingNodeController(); std::string GetFirmwareString(); std::string GetLocationString(); + std::string GetNameString(); std::string GetSerialString(); unsigned int GetStripsOnChannel(unsigned int channel); @@ -124,6 +125,7 @@ private: hid_device* dev; std::string firmware_version; std::string location; + std::string name; std::thread* keepalive_thread; std::atomic keepalive_thread_run; std::chrono::time_point last_commit_time; diff --git a/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp b/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp index 7ff9f2db..f84969b5 100644 --- a/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp +++ b/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp @@ -37,9 +37,9 @@ void DetectCorsairLightingNodeControllers(hid_device_info* info, const std::stri if(dev) { - CorsairLightingNodeController* controller = new CorsairLightingNodeController(dev, info->path); + CorsairLightingNodeController* controller = new CorsairLightingNodeController(dev, info->path, name); RGBController_CorsairLightingNode* rgb_controller = new RGBController_CorsairLightingNode(controller); - rgb_controller->name = name; + ResourceManager::get()->RegisterRGBController(rgb_controller); } } /* DetectCorsairLightingNodeControllers() */ diff --git a/Controllers/CorsairLightingNodeController/RGBController_CorsairLightingNode.cpp b/Controllers/CorsairLightingNodeController/RGBController_CorsairLightingNode.cpp index d4b5897d..fec87bfd 100644 --- a/Controllers/CorsairLightingNodeController/RGBController_CorsairLightingNode.cpp +++ b/Controllers/CorsairLightingNodeController/RGBController_CorsairLightingNode.cpp @@ -26,7 +26,7 @@ RGBController_CorsairLightingNode::RGBController_CorsairLightingNode(CorsairLigh { controller = controller_ptr; - name = "Corsair Lighting Node Device"; + name = controller->GetNameString(); vendor = "Corsair"; description = "Corsair Lighting Node Device"; type = DEVICE_TYPE_LEDSTRIP;