Adding I2C PCI Detector names to the detector config to resolve #2554

* Adding i2c_pci detector iterator under `UpdateDetectorSettings()` in the ResourceManager
* Prefixing all Sapphire GPU detector strings with `Sapphire ` to align with other detectors
* Splitting the V1 and V3 detector code paths to populate Supported Devices acccurately
* RGBController code cleanup to align with current style guidlines.
This commit is contained in:
Chris 2022-06-27 14:04:11 +10:00
parent 81b385a67e
commit 709c6a0970
6 changed files with 155 additions and 146 deletions

View file

@ -16,33 +16,32 @@
@save :x:
@direct :x:
@effects :white_check_mark:
@detectors DetectSapphireGPUControllers
@detectors DetectSapphireV1Controllers
@comment
\*-------------------------------------------------------------------*/
RGBController_SapphireNitroGlowV1::RGBController_SapphireNitroGlowV1(SapphireNitroGlowV1Controller* sapphire_ptr)
RGBController_SapphireNitroGlowV1::RGBController_SapphireNitroGlowV1(SapphireNitroGlowV1Controller* controller_ptr)
{
sapphire = sapphire_ptr;
controller = controller_ptr;
name = "Sapphire Nitro Glow V1 Device";
vendor = "Sapphire";
description = "Sapphire Nitro Glow V1 Device";
location = sapphire->GetDeviceLocation();
type = DEVICE_TYPE_GPU;
name = "Sapphire Nitro Glow V1 Device";
vendor = "Sapphire";
description = "Sapphire Nitro Glow V1 Device";
location = controller->GetDeviceLocation();
type = DEVICE_TYPE_GPU;
mode Static;
Static.name = "Static";
Static.value = 0x04;
Static.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Static.color_mode = MODE_COLORS_PER_LED;
Static.name = "Static";
Static.value = 0x04;
Static.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Static.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Static);
mode Rainbow;
Rainbow.name = "Rainbow";
Rainbow.value = 0x01;
Rainbow.flags = 0;
Rainbow.color_mode = MODE_COLORS_NONE;
Rainbow.name = "Rainbow Wave";
Rainbow.value = 0x01;
Rainbow.flags = 0;
Rainbow.color_mode = MODE_COLORS_NONE;
modes.push_back(Rainbow);
SetupZones();
@ -52,7 +51,7 @@ RGBController_SapphireNitroGlowV1::RGBController_SapphireNitroGlowV1(SapphireNit
RGBController_SapphireNitroGlowV1::~RGBController_SapphireNitroGlowV1()
{
delete sapphire;
delete controller;
}
void RGBController_SapphireNitroGlowV1::SetupZones()
@ -85,12 +84,12 @@ void RGBController_SapphireNitroGlowV1::SetupZones()
void RGBController_SapphireNitroGlowV1::ReadConfiguration()
{
colors[0] = ToRGBColor(
sapphire->GetRed(),
sapphire->GetGreen(),
sapphire->GetBlue()
controller->GetRed(),
controller->GetGreen(),
controller->GetBlue()
);
switch(sapphire->GetMode())
switch(controller->GetMode())
{
case SAPPHIRE_NITRO_GLOW_V1_MODE_CUSTOM:
active_mode = 0;
@ -133,7 +132,7 @@ void RGBController_SapphireNitroGlowV1::DeviceUpdateLEDs()
unsigned char grn = RGBGetGValue(color);
unsigned char blu = RGBGetBValue(color);
sapphire->SetColor(red, grn, blu);
controller->SetColor(red, grn, blu);
}
void RGBController_SapphireNitroGlowV1::UpdateZoneLEDs(int /*zone*/)
@ -153,5 +152,5 @@ void RGBController_SapphireNitroGlowV1::SetCustomMode()
void RGBController_SapphireNitroGlowV1::DeviceUpdateMode()
{
sapphire->SetMode((unsigned char)modes[(unsigned int)active_mode].value);
controller->SetMode((unsigned char)modes[(unsigned int)active_mode].value);
}

View file

@ -15,7 +15,7 @@
class RGBController_SapphireNitroGlowV1 : public RGBController
{
public:
RGBController_SapphireNitroGlowV1(SapphireNitroGlowV1Controller* sapphire_ptr);
RGBController_SapphireNitroGlowV1(SapphireNitroGlowV1Controller* controller_ptr);
~RGBController_SapphireNitroGlowV1();
void SetupZones();
@ -30,7 +30,7 @@ public:
void DeviceUpdateMode();
private:
SapphireNitroGlowV1Controller* sapphire;
SapphireNitroGlowV1Controller* controller;
void ReadConfiguration();
};

View file

@ -16,70 +16,69 @@
@save :x:
@direct :x:
@effects :white_check_mark:
@detectors DetectSapphireGPUControllers
@detectors DetectSapphireV3Controllers
@comment
\*-------------------------------------------------------------------*/
RGBController_SapphireNitroGlowV3::RGBController_SapphireNitroGlowV3(SapphireNitroGlowV3Controller* sapphire_ptr)
RGBController_SapphireNitroGlowV3::RGBController_SapphireNitroGlowV3(SapphireNitroGlowV3Controller* controller_ptr)
{
sapphire = sapphire_ptr;
controller = controller_ptr;
name = "Sapphire Nitro Glow V3 Device";
vendor = "Sapphire";
description = "Sapphire Nitro Glow V3 Device";
location = sapphire->GetDeviceLocation();
type = DEVICE_TYPE_GPU;
name = "Sapphire Nitro Glow V3 Device";
vendor = "Sapphire";
description = "Sapphire Nitro Glow V3 Device";
location = controller->GetDeviceLocation();
type = DEVICE_TYPE_GPU;
mode Static;
Static.name = "Static";
Static.value = SAPPHIRE_NITRO_GLOW_V3_MODE_CUSTOM;
Static.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Static.color_mode = MODE_COLORS_PER_LED;
Static.name = "Static";
Static.value = SAPPHIRE_NITRO_GLOW_V3_MODE_CUSTOM;
Static.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Static.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Static);
mode Rainbow;
Rainbow.name = "Rainbow";
Rainbow.value = SAPPHIRE_NITRO_GLOW_V3_MODE_RAINBOW;
Rainbow.flags = MODE_FLAG_HAS_SPEED;
Rainbow.speed_min = 10;
Rainbow.speed_max = 250;
Rainbow.color_mode = MODE_COLORS_NONE;
Rainbow.name = "Rainbow Wave";
Rainbow.value = SAPPHIRE_NITRO_GLOW_V3_MODE_RAINBOW;
Rainbow.flags = MODE_FLAG_HAS_SPEED;
Rainbow.speed_min = 10;
Rainbow.speed_max = 250;
Rainbow.color_mode = MODE_COLORS_NONE;
modes.push_back(Rainbow);
mode Runway;
Runway.name = "Runway";
Runway.value = SAPPHIRE_NITRO_GLOW_V3_MODE_RUNWAY;
Runway.flags = MODE_FLAG_HAS_SPEED;
Runway.speed_min = 5;
Runway.speed_max = 50;
Runway.color_mode = MODE_COLORS_NONE;
Runway.name = "Runway";
Runway.value = SAPPHIRE_NITRO_GLOW_V3_MODE_RUNWAY;
Runway.flags = MODE_FLAG_HAS_SPEED;
Runway.speed_min = 5;
Runway.speed_max = 50;
Runway.color_mode = MODE_COLORS_NONE;
modes.push_back(Runway);
mode ColorCycle;
ColorCycle.name = "Color Cycle";
ColorCycle.value = SAPPHIRE_NITRO_GLOW_V3_MODE_COLOR_CYCLE;
ColorCycle.flags = MODE_FLAG_HAS_SPEED;
ColorCycle.speed_min = 30;
ColorCycle.speed_max = 1;
ColorCycle.color_mode = MODE_COLORS_NONE;
ColorCycle.name = "Spectrum Cycle";
ColorCycle.value = SAPPHIRE_NITRO_GLOW_V3_MODE_COLOR_CYCLE;
ColorCycle.flags = MODE_FLAG_HAS_SPEED;
ColorCycle.speed_min = 30;
ColorCycle.speed_max = 1;
ColorCycle.color_mode = MODE_COLORS_NONE;
modes.push_back(ColorCycle);
mode Serial;
Serial.name = "Serial";
Serial.value = SAPPHIRE_NITRO_GLOW_V3_MODE_SERIAL;
Serial.flags = MODE_FLAG_HAS_SPEED;
Serial.speed_min = 255;
Serial.speed_max = 5;
Serial.color_mode = MODE_COLORS_NONE;
Serial.name = "Serial";
Serial.value = SAPPHIRE_NITRO_GLOW_V3_MODE_SERIAL;
Serial.flags = MODE_FLAG_HAS_SPEED;
Serial.speed_min = 255;
Serial.speed_max = 5;
Serial.color_mode = MODE_COLORS_NONE;
modes.push_back(Serial);
mode ExternalControl;
ExternalControl.name = "External Control";
ExternalControl.value = SAPPHIRE_NITRO_GLOW_V3_MODE_EXTERNAL_CONTROL;
ExternalControl.flags = 0;
ExternalControl.color_mode = MODE_COLORS_NONE;
modes.push_back(ExternalControl);
mode External;
External.name = "External Control";
External.value = SAPPHIRE_NITRO_GLOW_V3_MODE_EXTERNAL_CONTROL;
External.flags = 0;
External.color_mode = MODE_COLORS_NONE;
modes.push_back(External);
SetupZones();
@ -88,7 +87,7 @@ RGBController_SapphireNitroGlowV3::RGBController_SapphireNitroGlowV3(SapphireNit
RGBController_SapphireNitroGlowV3::~RGBController_SapphireNitroGlowV3()
{
delete sapphire;
delete controller;
}
void RGBController_SapphireNitroGlowV3::SetupZones()
@ -120,24 +119,24 @@ void RGBController_SapphireNitroGlowV3::SetupZones()
void RGBController_SapphireNitroGlowV3::ReadConfiguration()
{
modes[1].speed = sapphire->GetRainbowAnimationSpeed();
modes[2].speed = sapphire->GetRunwayAnimationSpeed();
modes[3].speed = sapphire->GetColorCycleAnimationSpeed();
modes[4].speed = sapphire->GetSerialAnimationSpeed();
modes[1].speed = controller->GetRainbowAnimationSpeed();
modes[2].speed = controller->GetRunwayAnimationSpeed();
modes[3].speed = controller->GetColorCycleAnimationSpeed();
modes[4].speed = controller->GetSerialAnimationSpeed();
colors[0] = ToRGBColor(
sapphire->GetRed(),
sapphire->GetBlue(),
sapphire->GetGreen()
controller->GetRed(),
controller->GetBlue(),
controller->GetGreen()
);
if(sapphire->GetExternalControl())
if(controller->GetExternalControl())
{
active_mode = 5;
return;
}
switch(sapphire->GetMode())
switch(controller->GetMode())
{
case SAPPHIRE_NITRO_GLOW_V3_MODE_CUSTOM:
active_mode = 0;
@ -184,7 +183,7 @@ void RGBController_SapphireNitroGlowV3::DeviceUpdateLEDs()
unsigned char grn = RGBGetGValue(color);
unsigned char blu = RGBGetBValue(color);
sapphire->SetColor(red, grn, blu);
controller->SetColor(red, grn, blu);
}
void RGBController_SapphireNitroGlowV3::UpdateZoneLEDs(int /*zone*/)
@ -209,36 +208,36 @@ void RGBController_SapphireNitroGlowV3::DeviceUpdateMode()
switch(mode.value)
{
case SAPPHIRE_NITRO_GLOW_V3_MODE_CUSTOM:
sapphire->SetExternalControl(false);
sapphire->SetMode(mode.value);
controller->SetExternalControl(false);
controller->SetMode(mode.value);
break;
case SAPPHIRE_NITRO_GLOW_V3_MODE_RAINBOW:
sapphire->SetExternalControl(false);
sapphire->SetRainbowAnimationSpeed(mode.speed);
sapphire->SetMode(mode.value);
controller->SetExternalControl(false);
controller->SetRainbowAnimationSpeed(mode.speed);
controller->SetMode(mode.value);
break;
case SAPPHIRE_NITRO_GLOW_V3_MODE_RUNWAY:
sapphire->SetExternalControl(false);
sapphire->SetRunwayAnimationSpeed(mode.speed);
sapphire->SetMode(mode.value);
controller->SetExternalControl(false);
controller->SetRunwayAnimationSpeed(mode.speed);
controller->SetMode(mode.value);
break;
case SAPPHIRE_NITRO_GLOW_V3_MODE_COLOR_CYCLE:
sapphire->SetExternalControl(false);
sapphire->SetColorCycleAnimationSpeed(mode.speed);
sapphire->SetMode(mode.value);
controller->SetExternalControl(false);
controller->SetColorCycleAnimationSpeed(mode.speed);
controller->SetMode(mode.value);
break;
case SAPPHIRE_NITRO_GLOW_V3_MODE_SERIAL:
sapphire->SetExternalControl(false);
sapphire->SetSerialAnimationSpeed(mode.speed);
sapphire->SetMode(mode.value);
controller->SetExternalControl(false);
controller->SetSerialAnimationSpeed(mode.speed);
controller->SetMode(mode.value);
break;
case SAPPHIRE_NITRO_GLOW_V3_MODE_EXTERNAL_CONTROL:
sapphire->SetExternalControl(true);
controller->SetExternalControl(true);
break;
}
}

View file

@ -15,7 +15,7 @@
class RGBController_SapphireNitroGlowV3 : public RGBController
{
public:
RGBController_SapphireNitroGlowV3(SapphireNitroGlowV3Controller* sapphire_ptr);
RGBController_SapphireNitroGlowV3(SapphireNitroGlowV3Controller* controller_ptr);
~RGBController_SapphireNitroGlowV3();
void SetupZones();
@ -30,7 +30,7 @@ public:
void DeviceUpdateMode();
private:
SapphireNitroGlowV3Controller* sapphire;
SapphireNitroGlowV3Controller* controller;
void ReadConfiguration();
};

View file

@ -51,46 +51,42 @@ bool TestForSapphireGPUController(i2c_smbus_interface* bus, unsigned char addres
* *
\******************************************************************************************/
void DetectSapphireGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name)
void DetectSapphireV1Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name)
{
switch(i2c_addr)
if(TestForSapphireGPUController(bus, i2c_addr))
{
case SAPPHIRE_NITRO_GLOW_V1_ADDR:
if(TestForSapphireGPUController(bus, i2c_addr))
{
SapphireNitroGlowV1Controller* new_sapphire_gpu = new SapphireNitroGlowV1Controller(bus, i2c_addr);
RGBController_SapphireNitroGlowV1* new_controller = new RGBController_SapphireNitroGlowV1(new_sapphire_gpu);
new_controller->name = name;
SapphireNitroGlowV1Controller* new_sapphire_gpu = new SapphireNitroGlowV1Controller(bus, i2c_addr);
RGBController_SapphireNitroGlowV1* new_controller = new RGBController_SapphireNitroGlowV1(new_sapphire_gpu);
new_controller->name = name;
ResourceManager::get()->RegisterRGBController(new_controller);
}
break;
case SAPPHIRE_NITRO_GLOW_V3_ADDR:
if(TestForSapphireGPUController(bus, i2c_addr))
{
SapphireNitroGlowV3Controller* new_sapphire_gpu = new SapphireNitroGlowV3Controller(bus, i2c_addr);
RGBController_SapphireNitroGlowV3* new_controller = new RGBController_SapphireNitroGlowV3(new_sapphire_gpu);
new_controller->name = name;
ResourceManager::get()->RegisterRGBController(new_controller);
}
break;
ResourceManager::get()->RegisterRGBController(new_controller);
}
} /* DetectSapphireGPUControllers() */
} /* DetectSapphireV1Controllers() */
REGISTER_I2C_PCI_DETECTOR("RX 470/480 Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_POLARIS_DEV, SAPPHIRE_LEGACY_SUB_VEN, SAPPHIRE_LEGACY_POLARIS_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V1_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 570/580/590 Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_POLARIS_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_POLARIS_NITRO_PLUS_SUB_DEV1, SAPPHIRE_NITRO_GLOW_V1_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 570/580/590 Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_POLARIS_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_POLARIS_NITRO_PLUS_SUB_DEV2, SAPPHIRE_NITRO_GLOW_V1_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 580 Nitro+ (2048SP)", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_POLARIS20XL_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_POLARIS_NITRO_PLUS_SUB_DEV1, SAPPHIRE_NITRO_GLOW_V1_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX Vega 56/64 Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_VEGA10_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_VEGA10_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V1_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 5700 (XT) Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_NAVI10_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI10_NITRO_PLUS_SUB_DEV1, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 5700 XT Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_NAVI10_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI10_NITRO_PLUS_SUB_DEV2, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 5700 XT Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_NAVI10_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI10_NITRO_PLUS_SUB_DEV3, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 5500 XT Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_NAVI14_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI14_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 6800 XT Nitro+ SE", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_NAVI21_DEV1, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI21_NITRO_PLUS_SUB_DEV1, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 6800 XT/6900 XT Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_NAVI21_DEV1, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI21_NITRO_PLUS_SUB_DEV2, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 6800 Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_NAVI21_DEV1, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI21_NITRO_PLUS_SUB_DEV3, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 6700 XT Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_NAVI22_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI22_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 6600 XT Nitro+", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_NAVI23_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI23_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("RX 6900 XT Toxic", DetectSapphireGPUControllers, AMD_GPU_VEN, AMD_NAVI21_DEV2, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI21_TOXIC_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);
void DetectSapphireV3Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name)
{
if(TestForSapphireGPUController(bus, i2c_addr))
{
SapphireNitroGlowV3Controller* new_sapphire_gpu = new SapphireNitroGlowV3Controller(bus, i2c_addr);
RGBController_SapphireNitroGlowV3* new_controller = new RGBController_SapphireNitroGlowV3(new_sapphire_gpu);
new_controller->name = name;
ResourceManager::get()->RegisterRGBController(new_controller);
}
} /* DetectSapphireV3Controllers() */
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 470/480 Nitro+", DetectSapphireV1Controllers, AMD_GPU_VEN, AMD_POLARIS_DEV, SAPPHIRE_LEGACY_SUB_VEN, SAPPHIRE_LEGACY_POLARIS_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V1_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 570/580/590 Nitro+", DetectSapphireV1Controllers, AMD_GPU_VEN, AMD_POLARIS_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_POLARIS_NITRO_PLUS_SUB_DEV1, SAPPHIRE_NITRO_GLOW_V1_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 570/580/590 Nitro+", DetectSapphireV1Controllers, AMD_GPU_VEN, AMD_POLARIS_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_POLARIS_NITRO_PLUS_SUB_DEV2, SAPPHIRE_NITRO_GLOW_V1_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 580 Nitro+ (2048SP)", DetectSapphireV1Controllers, AMD_GPU_VEN, AMD_POLARIS20XL_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_POLARIS_NITRO_PLUS_SUB_DEV1, SAPPHIRE_NITRO_GLOW_V1_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX Vega 56/64 Nitro+", DetectSapphireV1Controllers, AMD_GPU_VEN, AMD_VEGA10_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_VEGA10_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V1_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 5700 (XT) Nitro+", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI10_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI10_NITRO_PLUS_SUB_DEV1, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 5700 XT Nitro+", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI10_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI10_NITRO_PLUS_SUB_DEV2, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 5700 XT Nitro+", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI10_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI10_NITRO_PLUS_SUB_DEV3, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 5500 XT Nitro+", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI14_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI14_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 6800 XT Nitro+ SE", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI21_DEV1, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI21_NITRO_PLUS_SUB_DEV1, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 6800 XT/6900 XT Nitro+", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI21_DEV1, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI21_NITRO_PLUS_SUB_DEV2, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 6800 Nitro+", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI21_DEV1, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI21_NITRO_PLUS_SUB_DEV3, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 6700 XT Nitro+", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI22_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI22_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 6600 XT Nitro+", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI23_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI23_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);
REGISTER_I2C_PCI_DETECTOR("Sapphire RX 6900 XT Toxic", DetectSapphireV3Controllers, AMD_GPU_VEN, AMD_NAVI21_DEV2, SAPPHIRE_SUB_VEN, SAPPHIRE_NAVI21_TOXIC_SUB_DEV, SAPPHIRE_NITRO_GLOW_V3_ADDR);

View file

@ -1335,6 +1335,21 @@ void ResourceManager::UpdateDetectorSettings()
}
}
/*-------------------------------------------------*\
| Loop through all I2C PCI detectors and see if any |
| need to be saved to the settings |
\*-------------------------------------------------*/
for(unsigned int i2c_pci_detector_idx = 0; i2c_pci_detector_idx < i2c_pci_device_detectors.size(); i2c_pci_detector_idx++)
{
detection_string = i2c_pci_device_detectors[i2c_pci_detector_idx].name.c_str();
if(!(detector_settings.contains("detectors") && detector_settings["detectors"].contains(detection_string)))
{
detector_settings["detectors"][detection_string] = true;
save_settings = true;
}
}
/*-------------------------------------------------*\
| Loop through all HID detectors and see if any |
| need to be saved to the settings |