Store name in SapphireGPUControllers to avoid setting it in detectors

This commit is contained in:
Adam Honse 2025-08-14 20:03:41 -05:00
parent 9680d072fa
commit 46d935c1a4
7 changed files with 29 additions and 17 deletions

View file

@ -62,9 +62,8 @@ void DetectSapphireV1Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, con
{
if(TestForSapphireGPUController(bus, i2c_addr))
{
SapphireNitroGlowV1Controller* new_sapphire_gpu = new SapphireNitroGlowV1Controller(bus, i2c_addr);
SapphireNitroGlowV1Controller* new_sapphire_gpu = new SapphireNitroGlowV1Controller(bus, i2c_addr, name);
RGBController_SapphireNitroGlowV1* new_controller = new RGBController_SapphireNitroGlowV1(new_sapphire_gpu);
new_controller->name = name;
ResourceManager::get()->RegisterRGBController(new_controller);
}
@ -74,9 +73,8 @@ void DetectSapphireV3Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, con
{
if(TestForSapphireGPUController(bus, i2c_addr))
{
SapphireNitroGlowV3Controller* new_sapphire_gpu = new SapphireNitroGlowV3Controller(bus, i2c_addr);
SapphireNitroGlowV3Controller* new_sapphire_gpu = new SapphireNitroGlowV3Controller(bus, i2c_addr, name);
RGBController_SapphireNitroGlowV3* new_controller = new RGBController_SapphireNitroGlowV3(new_sapphire_gpu);
new_controller->name = name;
ResourceManager::get()->RegisterRGBController(new_controller);
}
@ -111,4 +109,4 @@ REGISTER_I2C_PCI_DETECTOR("Sapphire Radeon RX 7900 GRE Nitro+",
REGISTER_I2C_PCI_DETECTOR("Sapphire Radeon RX 7900 XTX Nitro+", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI31_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI31_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire Radeon RX 9070 Pure", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI48_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI48_PURE_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire Radeon RX 9070 XT Nitro+", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI48_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI48_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire Radeon RX 9070 XT Pure", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI48_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI48_PURE_XT_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire Radeon RX 9070 XT Pure", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI48_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI48_PURE_XT_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);

View file

@ -26,7 +26,7 @@ RGBController_SapphireNitroGlowV1::RGBController_SapphireNitroGlowV1(SapphireNit
{
controller = controller_ptr;
name = "Sapphire Nitro Glow V1 Device";
name = controller->GetDeviceName();
vendor = "Sapphire";
description = "Sapphire Nitro Glow V1 Device";
location = controller->GetDeviceLocation();

View file

@ -11,10 +11,11 @@
#include "SapphireNitroGlowV1Controller.h"
SapphireNitroGlowV1Controller::SapphireNitroGlowV1Controller(i2c_smbus_interface* bus, sapphire_dev_id dev)
SapphireNitroGlowV1Controller::SapphireNitroGlowV1Controller(i2c_smbus_interface* bus, sapphire_dev_id dev, std::string dev_name)
{
this->bus = bus;
this->dev = dev;
this->bus = bus;
this->dev = dev;
this->name = dev_name;
}
SapphireNitroGlowV1Controller::~SapphireNitroGlowV1Controller()
@ -32,6 +33,11 @@ std::string SapphireNitroGlowV1Controller::GetDeviceLocation()
return("I2C: " + return_string);
}
std::string SapphireNitroGlowV1Controller::GetDeviceName()
{
return(name);
}
unsigned char SapphireNitroGlowV1Controller::GetRed()
{
return(bus->i2c_smbus_read_byte_data(dev, SAPPHIRE_NITRO_GLOW_V1_REG_RED));

View file

@ -41,10 +41,11 @@ enum
class SapphireNitroGlowV1Controller
{
public:
SapphireNitroGlowV1Controller(i2c_smbus_interface* bus, sapphire_dev_id dev);
SapphireNitroGlowV1Controller(i2c_smbus_interface* bus, sapphire_dev_id dev, std::string dev_name);
~SapphireNitroGlowV1Controller();
std::string GetDeviceLocation();
std::string GetDeviceName();
unsigned char GetRed();
unsigned char GetGreen();
@ -61,5 +62,5 @@ public:
private:
i2c_smbus_interface* bus;
sapphire_dev_id dev;
std::string name;
};

View file

@ -26,7 +26,7 @@ RGBController_SapphireNitroGlowV3::RGBController_SapphireNitroGlowV3(SapphireNit
{
controller = controller_ptr;
name = "Sapphire Nitro Glow V3 Device";
name = controller->GetDeviceName();
vendor = "Sapphire";
description = "Sapphire Nitro Glow V3 Device";
location = controller->GetDeviceLocation();

View file

@ -11,10 +11,11 @@
#include "SapphireNitroGlowV3Controller.h"
SapphireNitroGlowV3Controller::SapphireNitroGlowV3Controller(i2c_smbus_interface* bus, sapphire_dev_id dev)
SapphireNitroGlowV3Controller::SapphireNitroGlowV3Controller(i2c_smbus_interface* bus, sapphire_dev_id dev, std::string dev_name)
{
this->bus = bus;
this->dev = dev;
this->bus = bus;
this->dev = dev;
this->name = dev_name;
}
SapphireNitroGlowV3Controller::~SapphireNitroGlowV3Controller()
@ -32,6 +33,11 @@ std::string SapphireNitroGlowV3Controller::GetDeviceLocation()
return("I2C: " + return_string);
}
std::string SapphireNitroGlowV3Controller::GetDeviceName()
{
return(name);
}
unsigned char SapphireNitroGlowV3Controller::GetRed()
{
return(bus->i2c_smbus_read_byte_data(dev, SAPPHIRE_NITRO_GLOW_V3_REG_RED));

View file

@ -48,10 +48,11 @@ enum
class SapphireNitroGlowV3Controller
{
public:
SapphireNitroGlowV3Controller(i2c_smbus_interface* bus, sapphire_dev_id dev);
SapphireNitroGlowV3Controller(i2c_smbus_interface* bus, sapphire_dev_id dev, std::string dev_name);
~SapphireNitroGlowV3Controller();
std::string GetDeviceLocation();
std::string GetDeviceName();
unsigned char GetRed();
unsigned char GetGreen();
@ -86,5 +87,5 @@ public:
private:
i2c_smbus_interface* bus;
sapphire_dev_id dev;
std::string name;
};