From 406ebcc7896eb1bedb8b15abaab18dfefff131d0 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Fri, 2 Oct 2020 20:29:17 -0500 Subject: [PATCH] Use HID path for Location on Corsair Lighting Node controllers --- .../CorsairLightingNodeController.cpp | 10 ++++++++-- .../CorsairLightingNodeController.h | 4 +++- .../CorsairLightingNodeControllerDetect.cpp | 2 +- .../RGBController_CorsairLightingNode.cpp | 1 + 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp index 7b362b48..5c8a23ba 100644 --- a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp +++ b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp @@ -37,9 +37,10 @@ THREAD keepalive_thread(void *param) THREADRETURN } -CorsairLightingNodeController::CorsairLightingNodeController(hid_device* dev_handle) +CorsairLightingNodeController::CorsairLightingNodeController(hid_device* dev_handle, const char* path) { - dev = dev_handle; + dev = dev_handle; + location = path; SendFirmwareRequest(); @@ -78,6 +79,11 @@ std::string CorsairLightingNodeController::GetFirmwareString() return(firmware_version); } +std::string CorsairLightingNodeController::GetLocationString() +{ + return(location); +} + void CorsairLightingNodeController::SetChannelEffect(unsigned char channel, unsigned char num_leds, unsigned char mode, diff --git a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h index 83510612..fd25229d 100644 --- a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h +++ b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h @@ -79,10 +79,11 @@ enum class CorsairLightingNodeController { public: - CorsairLightingNodeController(hid_device* dev_handle); + CorsairLightingNodeController(hid_device* dev_handle, const char* path); ~CorsairLightingNodeController(); std::string GetFirmwareString(); + std::string GetLocationString(); unsigned int GetStripsOnChannel(unsigned int channel); @@ -110,6 +111,7 @@ public: private: hid_device* dev; std::string firmware_version; + std::string location; std::chrono::time_point last_commit_time; void SendFirmwareRequest(); diff --git a/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp b/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp index 90ab528c..81f77c52 100644 --- a/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp +++ b/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp @@ -64,7 +64,7 @@ void DetectCorsairLightingNodeControllers(std::vector &rgb_contr if( dev ) { - CorsairLightingNodeController* controller = new CorsairLightingNodeController(dev); + CorsairLightingNodeController* controller = new CorsairLightingNodeController(dev, info->path); RGBController_CorsairLightingNode* rgb_controller = new RGBController_CorsairLightingNode(controller); diff --git a/Controllers/CorsairLightingNodeController/RGBController_CorsairLightingNode.cpp b/Controllers/CorsairLightingNodeController/RGBController_CorsairLightingNode.cpp index d9824483..f4a6d1b3 100644 --- a/Controllers/CorsairLightingNodeController/RGBController_CorsairLightingNode.cpp +++ b/Controllers/CorsairLightingNodeController/RGBController_CorsairLightingNode.cpp @@ -18,6 +18,7 @@ RGBController_CorsairLightingNode::RGBController_CorsairLightingNode(CorsairLigh description = "Corsair Lighting Node Device"; type = DEVICE_TYPE_LEDSTRIP; version = corsair->GetFirmwareString(); + location = corsair->GetLocationString(); mode Direct; Direct.name = "Direct";