From a34d796059dd5ea823f80a10204e60258ed74fc0 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Thu, 14 Aug 2025 11:38:43 -0500 Subject: [PATCH] Store name in NVIDIAIlluminationController to avoid setting it in detector --- ...minationControllerDetect_Windows_Linux.cpp | 3 +- ...IlluminationV1Controller_Windows_Linux.cpp | 11 +++++- ...IAIlluminationV1Controller_Windows_Linux.h | 39 ++++++++++--------- ...oller_NVIDIAIllumination_Windows_Linux.cpp | 37 +++++++++--------- 4 files changed, 49 insertions(+), 41 deletions(-) diff --git a/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp b/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp index 93b89470..cdd6f29f 100644 --- a/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp +++ b/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp @@ -116,9 +116,8 @@ void DetectNVIDIAIllumGPUs() case NVIDIA_ILLUMINATION_V1: { nvapi_accessor* new_nvapi = new nvapi_accessor(gpu_handles[gpu_idx]); - NVIDIAIlluminationV1Controller* controller = new NVIDIAIlluminationV1Controller(new_nvapi, device_list[dev_idx].treats_rgbw_as_rgb); + NVIDIAIlluminationV1Controller* controller = new NVIDIAIlluminationV1Controller(new_nvapi, device_list[dev_idx].treats_rgbw_as_rgb, device_list[dev_idx].name); RGBController_NVIDIAIlluminationV1* rgb_controller = new RGBController_NVIDIAIlluminationV1(controller); - rgb_controller->name = device_list[dev_idx].name; ResourceManager::get()->RegisterRGBController(rgb_controller); } diff --git a/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationV1Controller_Windows_Linux.cpp b/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationV1Controller_Windows_Linux.cpp index 57a08629..ca9d2402 100644 --- a/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationV1Controller_Windows_Linux.cpp +++ b/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationV1Controller_Windows_Linux.cpp @@ -11,14 +11,21 @@ #include "NVIDIAIlluminationV1Controller_Windows_Linux.h" -NVIDIAIlluminationV1Controller::NVIDIAIlluminationV1Controller(nvapi_accessor* nvapi_ptr, bool treats_rgbw_as_rgb) +NVIDIAIlluminationV1Controller::NVIDIAIlluminationV1Controller(nvapi_accessor* nvapi_ptr, bool treats_rgbw_as_rgb, std::string dev_name) { - nvapi = nvapi_ptr; + nvapi = nvapi_ptr; _treats_rgbw_as_rgb = treats_rgbw_as_rgb; + name = dev_name; } NVIDIAIlluminationV1Controller::~NVIDIAIlluminationV1Controller() { + +} + +std::string NVIDIAIlluminationV1Controller::GetName() +{ + return(name); } void NVIDIAIlluminationV1Controller::checkNVAPIreturn() diff --git a/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationV1Controller_Windows_Linux.h b/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationV1Controller_Windows_Linux.h index 389c80f9..708c78ee 100644 --- a/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationV1Controller_Windows_Linux.h +++ b/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationV1Controller_Windows_Linux.h @@ -35,25 +35,28 @@ enum class NVIDIAIlluminationV1Controller { - public: - NVIDIAIlluminationV1Controller(nvapi_accessor* nvapi_ptr, bool treats_rgbw_as_rgb); - ~NVIDIAIlluminationV1Controller(); +public: + NVIDIAIlluminationV1Controller(nvapi_accessor* nvapi_ptr, bool treats_rgbw_as_rgb, std::string dev_name); + ~NVIDIAIlluminationV1Controller(); - void getControl(); - void setControl(); - bool allZero(std::array colors); - void setZoneRGBW(uint8_t zone, uint8_t red, uint8_t green, uint8_t blue, uint8_t white, uint8_t brightness); - void setZoneRGB(uint8_t zone, uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness); - void setZone(uint8_t zone, uint8_t mode, NVIDIAIllumination_Config zone_config); - int getZoneColor(uint8_t zone_index); - std::vector getInfo(); + std::string GetName(); - private: - void checkNVAPIreturn(); + void getControl(); + void setControl(); + bool allZero(std::array colors); + void setZoneRGBW(uint8_t zone, uint8_t red, uint8_t green, uint8_t blue, uint8_t white, uint8_t brightness); + void setZoneRGB(uint8_t zone, uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness); + void setZone(uint8_t zone, uint8_t mode, NVIDIAIllumination_Config zone_config); + int getZoneColor(uint8_t zone_index); + std::vector getInfo(); - nvapi_accessor* nvapi; - bool _treats_rgbw_as_rgb; - NV_GPU_CLIENT_ILLUM_ZONE_CONTROL_PARAMS zone_params; - NV_STATUS nvapi_return = 0; - const std::array all_zeros = {0, 0, 0, 0}; +private: + nvapi_accessor* nvapi; + bool _treats_rgbw_as_rgb; + NV_GPU_CLIENT_ILLUM_ZONE_CONTROL_PARAMS zone_params; + NV_STATUS nvapi_return = 0; + const std::array all_zeros = {0, 0, 0, 0}; + std::string name; + + void checkNVAPIreturn(); }; diff --git a/Controllers/NVIDIAIlluminationController/RGBController_NVIDIAIllumination_Windows_Linux.cpp b/Controllers/NVIDIAIlluminationController/RGBController_NVIDIAIllumination_Windows_Linux.cpp index b1e2945b..c7200881 100644 --- a/Controllers/NVIDIAIlluminationController/RGBController_NVIDIAIllumination_Windows_Linux.cpp +++ b/Controllers/NVIDIAIlluminationController/RGBController_NVIDIAIllumination_Windows_Linux.cpp @@ -50,37 +50,36 @@ RGBController_NVIDIAIlluminationV1::RGBController_NVIDIAIlluminationV1(NVIDIAIlluminationV1Controller* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; - name = "NVIDIA Illumination GPU"; - vendor = "NVIDIA"; - description = "NVIDIA Illumination RGB GPU Device"; - - type = DEVICE_TYPE_GPU; + name = controller->GetName(); + vendor = "NVIDIA"; + description = "NVIDIA Illumination RGB GPU Device"; + type = DEVICE_TYPE_GPU; mode Off; - Off.name = "Off"; - Off.value = NVIDIA_ILLUMINATION_OFF; - Off.color_mode = MODE_COLORS_NONE; + Off.name = "Off"; + Off.value = NVIDIA_ILLUMINATION_OFF; + Off.color_mode = MODE_COLORS_NONE; modes.push_back(Off); mode Static; - Static.name = "Direct"; - Static.value = NVIDIA_ILLUMINATION_DIRECT; - Static.flags = MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR; - Static.color_mode = MODE_COLORS_PER_LED; - Static.colors_min = 1; - Static.colors_max = 1; - Static.brightness_min = 0; - Static.brightness = 100; - Static.brightness_max = 100; + Static.name = "Direct"; + Static.value = NVIDIA_ILLUMINATION_DIRECT; + Static.flags = MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR; + Static.color_mode = MODE_COLORS_PER_LED; + Static.colors_min = 1; + Static.colors_max = 1; + Static.brightness_min = 0; + Static.brightness = 100; + Static.brightness_max = 100; modes.push_back(Static); SetupZones(); for(unsigned int i = 0; i < zones.size(); i++) { - zones[i].colors[0] = controller->getZoneColor(i); + zones[i].colors[0] = controller->getZoneColor(i); } }