Store name in CorsairLightingNodeController to avoid setting it in detector

This commit is contained in:
Adam Honse 2025-08-06 00:43:05 -05:00
parent 56564092bc
commit 17a58b4c22
4 changed files with 16 additions and 8 deletions

View file

@ -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];

View file

@ -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<bool> keepalive_thread_run;
std::chrono::time_point<std::chrono::steady_clock> last_commit_time;

View file

@ -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() */

View file

@ -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;