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:
parent
81b385a67e
commit
709c6a0970
6 changed files with 155 additions and 146 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue