From d7f087269059543471d6a5d91a26229bd07d8810 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Thu, 7 Aug 2025 23:04:18 -0500 Subject: [PATCH] Store name in EVGATuringGPUController to avoid setting it in detector --- .../EVGAGPUv2Controller.cpp | 12 +++++-- .../EVGAGPUv2Controller.h | 4 ++- .../EVGATuringGPUControllerDetect.cpp | 9 ++--- .../RGBController_EVGAGPUv2.cpp | 33 +++++++++---------- .../RGBController_EVGAGPUv2.h | 5 +-- 5 files changed, 34 insertions(+), 29 deletions(-) diff --git a/Controllers/EVGATuringGPUController/EVGAGPUv2Controller.cpp b/Controllers/EVGATuringGPUController/EVGAGPUv2Controller.cpp index 9defe0a1..928f92a0 100644 --- a/Controllers/EVGATuringGPUController/EVGAGPUv2Controller.cpp +++ b/Controllers/EVGATuringGPUController/EVGAGPUv2Controller.cpp @@ -11,10 +11,11 @@ #include "EVGAGPUv2Controller.h" -EVGAGPUv2Controller::EVGAGPUv2Controller(i2c_smbus_interface* bus, evga_dev_id dev) +EVGAGPUv2Controller::EVGAGPUv2Controller(i2c_smbus_interface* bus, evga_dev_id dev, std::string dev_name) { - this->bus = bus; - this->dev = dev; + this->bus = bus; + this->dev = dev; + this->name = dev_name; } EVGAGPUv2Controller::~EVGAGPUv2Controller() @@ -33,6 +34,11 @@ std::string EVGAGPUv2Controller::GetDeviceLocation() return("I2C: " + return_string); } +std::string EVGAGPUv2Controller::GetDeviceName() +{ + return(name); +} + unsigned char EVGAGPUv2Controller::GetBrightnessA() { return(bus->i2c_smbus_read_byte_data(dev, EVGA_GPU_V2_REG_COLOR_A_BRIGHTNESS)); diff --git a/Controllers/EVGATuringGPUController/EVGAGPUv2Controller.h b/Controllers/EVGATuringGPUController/EVGAGPUv2Controller.h index 9888f391..334e881c 100644 --- a/Controllers/EVGATuringGPUController/EVGAGPUv2Controller.h +++ b/Controllers/EVGATuringGPUController/EVGAGPUv2Controller.h @@ -86,10 +86,11 @@ enum class EVGAGPUv2Controller { public: - EVGAGPUv2Controller(i2c_smbus_interface* bus, evga_dev_id dev); + EVGAGPUv2Controller(i2c_smbus_interface* bus, evga_dev_id dev, std::string dev_name); ~EVGAGPUv2Controller(); std::string GetDeviceLocation(); + std::string GetDeviceName(); unsigned char GetBrightnessA(); RGBColor GetColorA(); @@ -110,4 +111,5 @@ private: i2c_smbus_interface* bus; evga_dev_id dev; + std::string name; }; diff --git a/Controllers/EVGATuringGPUController/EVGATuringGPUControllerDetect.cpp b/Controllers/EVGATuringGPUController/EVGATuringGPUControllerDetect.cpp index 706e3e27..1b013357 100644 --- a/Controllers/EVGATuringGPUController/EVGATuringGPUControllerDetect.cpp +++ b/Controllers/EVGATuringGPUController/EVGATuringGPUControllerDetect.cpp @@ -28,14 +28,11 @@ void DetectEVGATuringGPUControllers(i2c_smbus_interface* bus, uint8_t address, const std::string& name) { - if (bus->port_id == 1) + if(bus->port_id == 1) { - EVGAGPUv2Controller* controller; - RGBController_EVGAGPUv2* rgb_controller; + EVGAGPUv2Controller* controller = new EVGAGPUv2Controller(bus, address, name); + RGBController_EVGAGPUv2* rgb_controller = new RGBController_EVGAGPUv2(controller); - controller = new EVGAGPUv2Controller(bus, address); - rgb_controller = new RGBController_EVGAGPUv2(controller); - rgb_controller->name = name.c_str(); ResourceManager::get()->RegisterRGBController(rgb_controller); } } /* DetectEVGATuringGPUControllers() */ diff --git a/Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.cpp b/Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.cpp index bb58ff97..997a825e 100644 --- a/Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.cpp +++ b/Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.cpp @@ -22,16 +22,15 @@ @comment \*-------------------------------------------------------------------*/ -RGBController_EVGAGPUv2::RGBController_EVGAGPUv2(EVGAGPUv2Controller* evga_ptr) +RGBController_EVGAGPUv2::RGBController_EVGAGPUv2(EVGAGPUv2Controller* controller_ptr) { - evga = evga_ptr; + controller = controller_ptr; - name = "EVGA GPU"; - vendor = "EVGA"; - description = "EVGA Turing RGB GPU Device"; - location = evga->GetDeviceLocation(); - - type = DEVICE_TYPE_GPU; + name = controller->GetDeviceName(); + vendor = "EVGA"; + description = "EVGA Turing RGB GPU Device"; + location = controller->GetDeviceLocation(); + type = DEVICE_TYPE_GPU; mode Off; Off.name = "Off"; @@ -99,7 +98,7 @@ RGBController_EVGAGPUv2::RGBController_EVGAGPUv2(EVGAGPUv2Controller* evga_ptr) SetupZones(); // Initialize active mode - active_mode = getModeIndex(evga->GetMode()); + active_mode = getModeIndex(controller->GetMode()); /*---------------------------------------------------------*\ | The LED color (color[0]) will always be set. Mode colors | @@ -107,8 +106,8 @@ RGBController_EVGAGPUv2::RGBController_EVGAGPUv2(EVGAGPUv2Controller* evga_ptr) | by extension colorB is only necessary if its not black | \*---------------------------------------------------------*/ - colors[0] = evga->GetColorA(); - RGBColor colorB = evga->GetColorB(); + colors[0] = controller->GetColorA(); + RGBColor colorB = controller->GetColorB(); int breathing_mode_index = getModeIndex(EVGA_GPU_V2_RGB_MODE_BREATHING); int pulse_mode_index = getModeIndex(EVGA_GPU_V2_RGB_MODE_PULSE); @@ -124,13 +123,13 @@ RGBController_EVGAGPUv2::RGBController_EVGAGPUv2(EVGAGPUv2Controller* evga_ptr) } // Load speed settings from the card: - modes[active_mode].speed = evga->GetSpeed(); - modes[active_mode].brightness = evga->GetBrightnessA(); + modes[active_mode].speed = controller->GetSpeed(); + modes[active_mode].brightness = controller->GetBrightnessA(); } RGBController_EVGAGPUv2::~RGBController_EVGAGPUv2() { - delete evga; + delete controller; } int RGBController_EVGAGPUv2::getModeIndex(unsigned char mode_value) @@ -187,7 +186,7 @@ void RGBController_EVGAGPUv2::DeviceUpdateLEDs() | modes and as such colorB will always be black (0x000000) | \*---------------------------------------------------------*/ - evga->SetColor(colors[0], /* colorB*/ 0, modes[active_mode].brightness); + controller->SetColor(colors[0], /* colorB*/ 0, modes[active_mode].brightness); } void RGBController_EVGAGPUv2::UpdateZoneLEDs(int /*zone*/) @@ -217,10 +216,10 @@ void RGBController_EVGAGPUv2::DeviceUpdateMode() colorB = (modes[active_mode].colors.size() == 2) ? modes[active_mode].colors[1] : 0 ; } - evga->SetMode( modes[active_mode].value, colorA, colorB, modes[active_mode].speed, modes[active_mode].brightness); + controller->SetMode( modes[active_mode].value, colorA, colorB, modes[active_mode].speed, modes[active_mode].brightness); } void RGBController_EVGAGPUv2::DeviceSaveMode() { - evga->SaveSettings(); + controller->SaveSettings(); } diff --git a/Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.h b/Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.h index 1d6169c9..d6a0c471 100644 --- a/Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.h +++ b/Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.h @@ -17,7 +17,7 @@ class RGBController_EVGAGPUv2 : public RGBController { public: - RGBController_EVGAGPUv2(EVGAGPUv2Controller* evga_ptr); + RGBController_EVGAGPUv2(EVGAGPUv2Controller* controller_ptr); ~RGBController_EVGAGPUv2(); void SetupZones(); @@ -32,6 +32,7 @@ public: void DeviceSaveMode(); private: + EVGAGPUv2Controller* controller; + int getModeIndex(unsigned char mode_value); - EVGAGPUv2Controller* evga; };