From 8c63eeea479f1b0c8997d0c9d07d14d0c31c77ba Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Tue, 12 Aug 2025 18:48:34 -0500 Subject: [PATCH] Store name in LuxaforController to avoid setting it in detector --- .../LuxaforController/LuxaforController.cpp | 8 ++++++- .../LuxaforController/LuxaforController.h | 4 +++- .../LuxaforControllerDetect.cpp | 3 +-- .../RGBController_Luxafor.cpp | 22 +++++++++---------- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/Controllers/LuxaforController/LuxaforController.cpp b/Controllers/LuxaforController/LuxaforController.cpp index bf7b7413..fca10f8e 100644 --- a/Controllers/LuxaforController/LuxaforController.cpp +++ b/Controllers/LuxaforController/LuxaforController.cpp @@ -13,10 +13,11 @@ #include "LuxaforController.h" #include "StringUtils.h" -LuxaforController::LuxaforController(hid_device* dev_handle, const char* path) +LuxaforController::LuxaforController(hid_device* dev_handle, const char* path, std::string dev_name) { dev = dev_handle; location = path; + name = dev_name; } LuxaforController::~LuxaforController() @@ -29,6 +30,11 @@ std::string LuxaforController::GetDeviceLocation() return("HID: " + location); } +std::string LuxaforController::GetNameString() +{ + return(name); +} + std::string LuxaforController::GetSerialString() { wchar_t serial_string[128]; diff --git a/Controllers/LuxaforController/LuxaforController.h b/Controllers/LuxaforController/LuxaforController.h index 48910c6f..8439a324 100644 --- a/Controllers/LuxaforController/LuxaforController.h +++ b/Controllers/LuxaforController/LuxaforController.h @@ -44,10 +44,11 @@ enum class LuxaforController { public: - LuxaforController(hid_device* dev_handle, const char* path); + LuxaforController(hid_device* dev_handle, const char* path, std::string dev_name); ~LuxaforController(); std::string GetDeviceLocation(); + std::string GetNameString(); std::string GetSerialString(); void SendPacket(unsigned char mode, unsigned char led, unsigned char red, unsigned char grn, unsigned char blu, unsigned char type); @@ -55,4 +56,5 @@ public: private: hid_device* dev; std::string location; + std::string name; }; diff --git a/Controllers/LuxaforController/LuxaforControllerDetect.cpp b/Controllers/LuxaforController/LuxaforControllerDetect.cpp index 225b2902..28ab4dbb 100644 --- a/Controllers/LuxaforController/LuxaforControllerDetect.cpp +++ b/Controllers/LuxaforController/LuxaforControllerDetect.cpp @@ -29,9 +29,8 @@ void DetectLuxaforControllers(hid_device_info* info, const std::string& name) if(dev) { - LuxaforController* controller = new LuxaforController(dev, info->path); + LuxaforController* controller = new LuxaforController(dev, info->path, name); RGBController_Luxafor* rgb_controller = new RGBController_Luxafor(controller); - rgb_controller->name = name; ResourceManager::get()->RegisterRGBController(rgb_controller); } diff --git a/Controllers/LuxaforController/RGBController_Luxafor.cpp b/Controllers/LuxaforController/RGBController_Luxafor.cpp index 48769f00..c6ca497e 100644 --- a/Controllers/LuxaforController/RGBController_Luxafor.cpp +++ b/Controllers/LuxaforController/RGBController_Luxafor.cpp @@ -13,20 +13,20 @@ RGBController_Luxafor::RGBController_Luxafor(LuxaforController* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; - name = "Luxafor Device"; - type = DEVICE_TYPE_ACCESSORY; - vendor = "Luxafor"; - description = "Luxafor Device"; - location = controller->GetDeviceLocation(); - serial = controller->GetSerialString(); + name = controller->GetNameString(); + type = DEVICE_TYPE_ACCESSORY; + vendor = "Luxafor"; + description = "Luxafor Device"; + location = controller->GetDeviceLocation(); + serial = controller->GetSerialString(); mode Direct; - Direct.name = "Direct"; - Direct.value = LUXAFOR_MODE_DIRECT; - Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Direct.color_mode = MODE_COLORS_PER_LED; + Direct.name = "Direct"; + Direct.value = LUXAFOR_MODE_DIRECT; + Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Direct.color_mode = MODE_COLORS_PER_LED; modes.push_back(Direct); // mode Fade;