From d5f8e2cac980b1a59b1b4423a91bb7e699e61ae8 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Mon, 11 Aug 2025 18:02:26 -0500 Subject: [PATCH] Store name in HYTENexusController to avoid setting it in detector --- Controllers/HYTENexusController/HYTENexusController.cpp | 8 +++++++- Controllers/HYTENexusController/HYTENexusController.h | 4 +++- .../HYTENexusController/HYTENexusControllerDetect.cpp | 3 +-- .../HYTENexusController/RGBController_HYTENexus.cpp | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Controllers/HYTENexusController/HYTENexusController.cpp b/Controllers/HYTENexusController/HYTENexusController.cpp index 124ba0fa..629f852b 100644 --- a/Controllers/HYTENexusController/HYTENexusController.cpp +++ b/Controllers/HYTENexusController/HYTENexusController.cpp @@ -24,10 +24,11 @@ using namespace std::chrono_literals; | https://hyte.com/nexus/nexus-playground | \*---------------------------------------------------------*/ -HYTENexusController::HYTENexusController(char* port, unsigned short pid) +HYTENexusController::HYTENexusController(char* port, unsigned short pid, std::string dev_name) { port_name = port; device_pid = pid; + name = name; /*-----------------------------------------------------*\ | Initialize channels based on PID | @@ -108,6 +109,11 @@ std::string HYTENexusController::GetLocation() return(port_name); } +std::string HYTENexusController::GetName() +{ + return(name); +} + void HYTENexusController::KeepaliveThreadFunction() { while(keepalive_thread_run.load()) diff --git a/Controllers/HYTENexusController/HYTENexusController.h b/Controllers/HYTENexusController/HYTENexusController.h index 6c6c5fd6..d44844e4 100644 --- a/Controllers/HYTENexusController/HYTENexusController.h +++ b/Controllers/HYTENexusController/HYTENexusController.h @@ -52,11 +52,12 @@ enum class HYTENexusController { public: - HYTENexusController(char* port, unsigned short pid); + HYTENexusController(char* port, unsigned short pid, std::string dev_name); ~HYTENexusController(); std::string GetFirmwareVersion(); std::string GetLocation(); + std::string GetName(); std::string GetDeviceName(unsigned int device_type); void LEDStreaming(unsigned char channel, unsigned short num_leds, RGBColor* colors); @@ -67,6 +68,7 @@ public: private: std::string firmware_version; + std::string name; std::string port_name; serial_port * serialport = nullptr; std::chrono::time_point last_update_time; diff --git a/Controllers/HYTENexusController/HYTENexusControllerDetect.cpp b/Controllers/HYTENexusController/HYTENexusControllerDetect.cpp index acd8af8b..3462c6d4 100644 --- a/Controllers/HYTENexusController/HYTENexusControllerDetect.cpp +++ b/Controllers/HYTENexusController/HYTENexusControllerDetect.cpp @@ -50,9 +50,8 @@ void DetectHYTENexusControllers() { if(*ports[i] != "") { - HYTENexusController * controller = new HYTENexusController((char *)ports[i]->c_str(), hyte_nexus_devices[device_id].pid); + HYTENexusController * controller = new HYTENexusController((char *)ports[i]->c_str(), hyte_nexus_devices[device_id].pid, hyte_nexus_devices[device_id].name); RGBController_HYTENexus * rgb_controller = new RGBController_HYTENexus(controller); - rgb_controller->name = hyte_nexus_devices[device_id].name; ResourceManager::get()->RegisterRGBController(rgb_controller); } diff --git a/Controllers/HYTENexusController/RGBController_HYTENexus.cpp b/Controllers/HYTENexusController/RGBController_HYTENexus.cpp index 6d56f0dd..fd5f0477 100644 --- a/Controllers/HYTENexusController/RGBController_HYTENexus.cpp +++ b/Controllers/HYTENexusController/RGBController_HYTENexus.cpp @@ -33,7 +33,7 @@ RGBController_HYTENexus::RGBController_HYTENexus(HYTENexusController* controller { controller = controller_ptr; - name = "HYTE Nexus Device"; + name = controller->GetName(); vendor = "HYTE"; description = "HYTE Nexus Device"; type = DEVICE_TYPE_LEDSTRIP;