Pass name string into I2C DIMM detectors, store name in KingstonFuryDRAMController to avoid setting it in detector

This commit is contained in:
Adam Honse 2025-08-17 01:17:02 -05:00
parent c82a6052a2
commit 676547b8b0
11 changed files with 222 additions and 242 deletions

View file

@ -61,7 +61,7 @@ bool TestForCorsairVengeanceController(i2c_smbus_interface* bus, unsigned char a
* * * *
\******************************************************************************************/ \******************************************************************************************/
void DetectCorsairVengeanceControllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots) void DetectCorsairVengeanceControllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots, const std::string &/*name*/)
{ {
for(SPDWrapper *slot : slots) for(SPDWrapper *slot : slots)
{ {

View file

@ -67,7 +67,7 @@ bool TestForHyperXDRAMController(i2c_smbus_interface* bus, unsigned char address
* * * *
\******************************************************************************************/ \******************************************************************************************/
void DetectHyperXDRAMControllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots) void DetectHyperXDRAMControllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots, const std::string &/*name*/)
{ {
unsigned char slots_valid = 0x00; unsigned char slots_valid = 0x00;
bool fury_detected = false; bool fury_detected = false;

View file

@ -16,12 +16,12 @@
#include "RGBController.h" #include "RGBController.h"
#include "LogManager.h" #include "LogManager.h"
KingstonFuryDRAMController::KingstonFuryDRAMController( KingstonFuryDRAMController::KingstonFuryDRAMController(i2c_smbus_interface* bus, unsigned char base_addr, std::vector<int> slots, std::string dev_name)
i2c_smbus_interface* bus, unsigned char base_addr, std::vector<int> slots)
{ {
this->bus = bus; this->bus = bus;
this->base_addr = base_addr; this->base_addr = base_addr;
this->slots = slots; this->slots = slots;
this->name = dev_name;
reg_cache.resize(slots.size()); reg_cache.resize(slots.size());
} }
@ -47,6 +47,11 @@ std::string KingstonFuryDRAMController::GetDeviceLocation()
return("I2C: " + return_string); return("I2C: " + return_string);
} }
std::string KingstonFuryDRAMController::GetDeviceName()
{
return(name);
}
unsigned int KingstonFuryDRAMController::GetLEDCount() unsigned int KingstonFuryDRAMController::GetLEDCount()
{ {
return(GetLEDPerDIMM() * (unsigned int)slots.size()); return(GetLEDPerDIMM() * (unsigned int)slots.size());

View file

@ -124,9 +124,11 @@ enum
class KingstonFuryDRAMController class KingstonFuryDRAMController
{ {
public: public:
KingstonFuryDRAMController(i2c_smbus_interface* bus, unsigned char base_addr, std::vector<int> slots); KingstonFuryDRAMController(i2c_smbus_interface* bus, unsigned char base_addr, std::vector<int> slots, std::string dev_name);
std::string GetDeviceLocation(); std::string GetDeviceLocation();
std::string GetDeviceName();
unsigned int GetLEDCount(); unsigned int GetLEDCount();
unsigned int GetLEDPerDIMM(); unsigned int GetLEDPerDIMM();
unsigned int GetSlotCount(); unsigned int GetSlotCount();
@ -152,5 +154,6 @@ private:
i2c_smbus_interface* bus; i2c_smbus_interface* bus;
std::vector<int> slots; std::vector<int> slots;
unsigned char base_addr; unsigned char base_addr;
std::string name;
std::vector<std::map<unsigned char, unsigned char>> reg_cache; std::vector<std::map<unsigned char, unsigned char>> reg_cache;
}; };

View file

@ -164,7 +164,7 @@ void DetectKingstonFuryDRAMControllers(i2c_smbus_interface* bus, std::vector<SPD
* * * *
\******************************************************************************************/ \******************************************************************************************/
void DetectKingstonFuryDDR4Controllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots) void DetectKingstonFuryDDR4Controllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots, const std::string &name)
{ {
std::vector<int> fury_slots; std::vector<int> fury_slots;
@ -172,16 +172,14 @@ void DetectKingstonFuryDDR4Controllers(i2c_smbus_interface* bus, std::vector<SPD
if(!fury_slots.empty()) if(!fury_slots.empty())
{ {
KingstonFuryDRAMController* controller = KingstonFuryDRAMController* controller = new KingstonFuryDRAMController(bus, FURY_BASE_ADDR_DDR4, fury_slots, name);
new KingstonFuryDRAMController(bus, FURY_BASE_ADDR_DDR4, fury_slots); RGBController_KingstonFuryDRAM* rgb_controller = new RGBController_KingstonFuryDRAM(controller);
RGBController_KingstonFuryDRAM* rgb_controller =
new RGBController_KingstonFuryDRAM(controller);
rgb_controller->name = "Kingston Fury DDR4 RGB";
ResourceManager::get()->RegisterRGBController(rgb_controller); ResourceManager::get()->RegisterRGBController(rgb_controller);
} }
} }
void DetectKingstonFuryDDR5Controllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots) void DetectKingstonFuryDDR5Controllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots, const std::string &name)
{ {
std::vector<int> fury_slots; std::vector<int> fury_slots;
@ -189,16 +187,14 @@ void DetectKingstonFuryDDR5Controllers(i2c_smbus_interface* bus, std::vector<SPD
if(!fury_slots.empty()) if(!fury_slots.empty())
{ {
KingstonFuryDRAMController* controller = KingstonFuryDRAMController* controller = new KingstonFuryDRAMController(bus, FURY_BASE_ADDR_DDR5, fury_slots, name);
new KingstonFuryDRAMController(bus, FURY_BASE_ADDR_DDR5, fury_slots); RGBController_KingstonFuryDRAM* rgb_controller = new RGBController_KingstonFuryDRAM(controller);
RGBController_KingstonFuryDRAM* rgb_controller =
new RGBController_KingstonFuryDRAM(controller);
rgb_controller->name = "Kingston Fury DDR5 RGB";
ResourceManager::get()->RegisterRGBController(rgb_controller); ResourceManager::get()->RegisterRGBController(rgb_controller);
} }
} }
REGISTER_I2C_DIMM_DETECTOR("Kingston Fury DDR4 DRAM", DetectKingstonFuryDDR4Controllers, JEDEC_KINGSTON, SPD_DDR4_SDRAM); REGISTER_I2C_DIMM_DETECTOR("Kingston Fury DDR4 DRAM", DetectKingstonFuryDDR4Controllers, JEDEC_KINGSTON, SPD_DDR4_SDRAM);
REGISTER_I2C_DIMM_DETECTOR("Kingston Fury DDR5 DRAM", DetectKingstonFuryDDR5Controllers, JEDEC_KINGSTON, SPD_DDR5_SDRAM); REGISTER_I2C_DIMM_DETECTOR("Kingston Fury DDR4 DRAM", DetectKingstonFuryDDR4Controllers, JEDEC_KINGSTON_2, SPD_DDR4_SDRAM);
REGISTER_I2C_DIMM_DETECTOR("Kingston JEDEC2 Fury DDR4 DRAM", DetectKingstonFuryDDR4Controllers, JEDEC_KINGSTON_2, SPD_DDR4_SDRAM); REGISTER_I2C_DIMM_DETECTOR("Kingston Fury DDR5 DRAM", DetectKingstonFuryDDR5Controllers, JEDEC_KINGSTON, SPD_DDR5_SDRAM);
REGISTER_I2C_DIMM_DETECTOR("Kingston JEDEC2 Fury DDR5 DRAM", DetectKingstonFuryDDR5Controllers, JEDEC_KINGSTON_2, SPD_DDR5_SDRAM); REGISTER_I2C_DIMM_DETECTOR("Kingston Fury DDR5 DRAM", DetectKingstonFuryDDR5Controllers, JEDEC_KINGSTON_2, SPD_DDR5_SDRAM);

View file

@ -42,51 +42,50 @@ const RGBColor default_colors[] =
RGBController_KingstonFuryDRAM::RGBController_KingstonFuryDRAM(KingstonFuryDRAMController* controller_ptr) RGBController_KingstonFuryDRAM::RGBController_KingstonFuryDRAM(KingstonFuryDRAMController* controller_ptr)
{ {
controller = controller_ptr; controller = controller_ptr;
name = "Kingston Fury DDR4/5 DRAM"; name = controller->GetDeviceName();
vendor = "Kingston"; vendor = "Kingston";
type = DEVICE_TYPE_DRAM; type = DEVICE_TYPE_DRAM;
description = "Kingston Fury Beast/Renegade DDR4/5 DRAM Device"; description = "Kingston Fury Beast/Renegade DDR4/5 DRAM Device";
location = controller->GetDeviceLocation(); location = controller->GetDeviceLocation();
mode Direct; mode Direct;
Direct.name = "Direct"; Direct.name = "Direct";
Direct.value = FURY_MODE_DIRECT; Direct.value = FURY_MODE_DIRECT;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS; Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS;
Direct.color_mode = MODE_COLORS_PER_LED; Direct.color_mode = MODE_COLORS_PER_LED;
Direct.brightness_min = 0; Direct.brightness_min = 0;
Direct.brightness_max = 100; Direct.brightness_max = 100;
Direct.brightness = 80; Direct.brightness = 80;
modes.push_back(Direct); modes.push_back(Direct);
mode Static; mode Static;
Static.name = "Static"; Static.name = "Static";
Static.value = FURY_MODE_STATIC; Static.value = FURY_MODE_STATIC;
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS; Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS;
Static.color_mode = MODE_COLORS_MODE_SPECIFIC; Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
Static.colors_min = 1; Static.colors_min = 1;
Static.colors_max = 1; Static.colors_max = 1;
Static.colors.assign(default_colors, default_colors + 1); Static.colors.assign(default_colors, default_colors + 1);
Static.brightness_min = 0; Static.brightness_min = 0;
Static.brightness_max = 100; Static.brightness_max = 100;
Static.brightness = 80; Static.brightness = 80;
modes.push_back(Static); modes.push_back(Static);
// All speed values are inverted // All speed values are inverted
mode Rainbow; mode Rainbow;
Rainbow.name = "Rainbow"; Rainbow.name = "Rainbow";
Rainbow.value = FURY_MODE_RAINBOW; Rainbow.value = FURY_MODE_RAINBOW;
Rainbow.flags = MODE_FLAG_HAS_SPEED | Rainbow.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD;
MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD; Rainbow.speed_min = 60;
Rainbow.speed_min = 60; Rainbow.speed_max = 0;
Rainbow.speed_max = 0; Rainbow.speed = 25;
Rainbow.speed = 25; Rainbow.direction = MODE_DIRECTION_UP;
Rainbow.direction = MODE_DIRECTION_UP; Rainbow.brightness_min = 0;
Rainbow.brightness_min = 0; Rainbow.brightness_max = 100;
Rainbow.brightness_max = 100; Rainbow.brightness = 80;
Rainbow.brightness = 80; Rainbow.color_mode = MODE_COLORS_NONE;
Rainbow.color_mode = MODE_COLORS_NONE;
modes.push_back(Rainbow); modes.push_back(Rainbow);
mode Spectrum; mode Spectrum;
@ -105,101 +104,93 @@ RGBController_KingstonFuryDRAM::RGBController_KingstonFuryDRAM(KingstonFuryDRAMC
modes.push_back(Spectrum); modes.push_back(Spectrum);
mode Rhythm; mode Rhythm;
Rhythm.name = "Rhythm"; Rhythm.name = "Rhythm";
Rhythm.value = FURY_MODE_RHYTHM; Rhythm.value = FURY_MODE_RHYTHM;
Rhythm.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Rhythm.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS; Rhythm.color_mode = MODE_COLORS_MODE_SPECIFIC;
Rhythm.color_mode = MODE_COLORS_MODE_SPECIFIC; Rhythm.colors_min = 2;
Rhythm.colors_min = 2; Rhythm.colors_max = 11;
Rhythm.colors_max = 11;
Rhythm.colors.assign(default_colors, default_colors + 10); Rhythm.colors.assign(default_colors, default_colors + 10);
Rhythm.colors.push_back(FURY_DEFAULT_BG_COLOR); Rhythm.colors.push_back(FURY_DEFAULT_BG_COLOR);
Rhythm.speed_min = 10; Rhythm.speed_min = 10;
Rhythm.speed_max = 0; Rhythm.speed_max = 0;
Rhythm.speed = 0; Rhythm.speed = 0;
Rhythm.brightness_min = 0; Rhythm.brightness_min = 0;
Rhythm.brightness_max = 100; Rhythm.brightness_max = 100;
Rhythm.brightness = 80; Rhythm.brightness = 80;
modes.push_back(Rhythm); modes.push_back(Rhythm);
mode Breath; mode Breath;
Breath.name = "Breath"; Breath.name = "Breath";
Breath.value = FURY_MODE_BREATH; Breath.value = FURY_MODE_BREATH;
Breath.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Breath.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS;
MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | Breath.color_mode = MODE_COLORS_MODE_SPECIFIC;
MODE_FLAG_HAS_BRIGHTNESS; Breath.colors_min = 1;
Breath.color_mode = MODE_COLORS_MODE_SPECIFIC; Breath.colors_max = 10;
Breath.colors_min = 1;
Breath.colors_max = 10;
Breath.colors.assign(default_colors, default_colors + 10); Breath.colors.assign(default_colors, default_colors + 10);
Breath.speed_min = 10; Breath.speed_min = 10;
Breath.speed_max = 1; Breath.speed_max = 1;
Breath.speed = 5; Breath.speed = 5;
Breath.brightness_min = 0; Breath.brightness_min = 0;
Breath.brightness_max = 100; Breath.brightness_max = 100;
Breath.brightness = 80; Breath.brightness = 80;
modes.push_back(Breath); modes.push_back(Breath);
mode Dynamic; mode Dynamic;
Dynamic.name = "Dynamic"; Dynamic.name = "Dynamic";
Dynamic.value = FURY_MODE_DYNAMIC; Dynamic.value = FURY_MODE_DYNAMIC;
Dynamic.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Dynamic.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS; Dynamic.color_mode = MODE_COLORS_MODE_SPECIFIC;
Dynamic.color_mode = MODE_COLORS_MODE_SPECIFIC; Dynamic.colors_min = 1;
Dynamic.colors_min = 1; Dynamic.colors_max = 10;
Dynamic.colors_max = 10;
Dynamic.colors.assign(default_colors, default_colors + 10); Dynamic.colors.assign(default_colors, default_colors + 10);
Dynamic.speed_min = 1000; Dynamic.speed_min = 1000;
Dynamic.speed_max = 100; Dynamic.speed_max = 100;
Dynamic.speed = 300; Dynamic.speed = 300;
Dynamic.brightness_min = 0; Dynamic.brightness_min = 0;
Dynamic.brightness_max = 100; Dynamic.brightness_max = 100;
Dynamic.brightness = 80; Dynamic.brightness = 80;
modes.push_back(Dynamic); modes.push_back(Dynamic);
mode Slide; mode Slide;
Slide.name = "Slide"; Slide.name = "Slide";
Slide.value = FURY_MODE_SLIDE; Slide.value = FURY_MODE_SLIDE;
Slide.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Slide.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | Slide.color_mode = MODE_COLORS_MODE_SPECIFIC;
MODE_FLAG_HAS_DIRECTION_UD; Slide.colors_min = 2;
Slide.color_mode = MODE_COLORS_MODE_SPECIFIC; Slide.colors_max = 11;
Slide.colors_min = 2;
Slide.colors_max = 11;
Slide.colors.assign(default_colors, default_colors + 10); Slide.colors.assign(default_colors, default_colors + 10);
Slide.colors.push_back(FURY_DEFAULT_BG_COLOR); Slide.colors.push_back(FURY_DEFAULT_BG_COLOR);
Slide.speed_min = 255; Slide.speed_min = 255;
Slide.speed_max = 0; Slide.speed_max = 0;
Slide.speed = 8; Slide.speed = 8;
Slide.direction = MODE_DIRECTION_UP; Slide.direction = MODE_DIRECTION_UP;
Slide.brightness_min = 0; Slide.brightness_min = 0;
Slide.brightness_max = 100; Slide.brightness_max = 100;
Slide.brightness = 80; Slide.brightness = 80;
modes.push_back(Slide); modes.push_back(Slide);
mode Slither; mode Slither;
Slither.name = "Slither"; Slither.name = "Slither";
Slither.value = FURY_MODE_SLITHER; Slither.value = FURY_MODE_SLITHER;
Slither.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Slither.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS; Slither.color_mode = MODE_COLORS_MODE_SPECIFIC;
Slither.color_mode = MODE_COLORS_MODE_SPECIFIC; Slither.colors_min = 2;
Slither.colors_min = 2; Slither.colors_max = 11;
Slither.colors_max = 11;
Slither.colors.assign(default_colors, default_colors + 10); Slither.colors.assign(default_colors, default_colors + 10);
Slither.colors.push_back(FURY_DEFAULT_BG_COLOR); Slither.colors.push_back(FURY_DEFAULT_BG_COLOR);
Slither.speed_min = 255; Slither.speed_min = 255;
Slither.speed_max = 0; Slither.speed_max = 0;
Slither.speed = 40; Slither.speed = 40;
Slither.brightness_min = 0; Slither.brightness_min = 0;
Slither.brightness_max = 100; Slither.brightness_max = 100;
Slither.brightness = 80; Slither.brightness = 80;
modes.push_back(Slither); modes.push_back(Slither);
mode Teleport; mode Teleport;
Teleport.name = "Teleport"; Teleport.name = "Teleport";
Teleport.value = FURY_MODE_TELEPORT; Teleport.value = FURY_MODE_TELEPORT;
Teleport.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Teleport.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS;
Teleport.color_mode = MODE_COLORS_MODE_SPECIFIC; Teleport.color_mode = MODE_COLORS_MODE_SPECIFIC;
Teleport.colors_min = 2; Teleport.colors_min = 2;
Teleport.colors_max = 11; Teleport.colors_max = 11;
@ -214,69 +205,61 @@ RGBController_KingstonFuryDRAM::RGBController_KingstonFuryDRAM(KingstonFuryDRAMC
modes.push_back(Teleport); modes.push_back(Teleport);
mode Wind; mode Wind;
Wind.name = "Wind"; Wind.name = "Wind";
Wind.value = FURY_MODE_WIND; Wind.value = FURY_MODE_WIND;
Wind.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Wind.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | Wind.color_mode = MODE_COLORS_MODE_SPECIFIC;
MODE_FLAG_HAS_DIRECTION_UD; Wind.colors_min = 2;
Wind.color_mode = MODE_COLORS_MODE_SPECIFIC; Wind.colors_max = 11;
Wind.colors_min = 2;
Wind.colors_max = 11;
Wind.colors.assign(default_colors, default_colors + 10); Wind.colors.assign(default_colors, default_colors + 10);
Wind.colors.push_back(FURY_DEFAULT_BG_COLOR); Wind.colors.push_back(FURY_DEFAULT_BG_COLOR);
Wind.speed_min = 255; Wind.speed_min = 255;
Wind.speed_max = 0; Wind.speed_max = 0;
Wind.speed = 8; Wind.speed = 8;
Wind.direction = MODE_DIRECTION_UP; Wind.direction = MODE_DIRECTION_UP;
Wind.brightness_min = 0; Wind.brightness_min = 0;
Wind.brightness_max = 100; Wind.brightness_max = 100;
Wind.brightness = 80; Wind.brightness = 80;
modes.push_back(Wind); modes.push_back(Wind);
mode Comet; mode Comet;
Comet.name = "Comet"; Comet.name = "Comet";
Comet.value = FURY_MODE_COMET; Comet.value = FURY_MODE_COMET;
Comet.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Comet.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | Comet.color_mode = MODE_COLORS_MODE_SPECIFIC;
MODE_FLAG_HAS_DIRECTION_UD; Comet.colors_min = 1;
Comet.color_mode = MODE_COLORS_MODE_SPECIFIC; Comet.colors_max = 10;
Comet.colors_min = 1;
Comet.colors_max = 10;
Comet.colors.assign(default_colors, default_colors + 10); Comet.colors.assign(default_colors, default_colors + 10);
Comet.speed_min = 255; Comet.speed_min = 255;
Comet.speed_max = 0; Comet.speed_max = 0;
Comet.speed = 25; Comet.speed = 25;
Comet.direction = MODE_DIRECTION_UP; Comet.direction = MODE_DIRECTION_UP;
Comet.brightness_min = 0; Comet.brightness_min = 0;
Comet.brightness_max = 100; Comet.brightness_max = 100;
Comet.brightness = 80; Comet.brightness = 80;
modes.push_back(Comet); modes.push_back(Comet);
mode Rain; mode Rain;
Rain.name = "Rain"; Rain.name = "Rain";
Rain.value = FURY_MODE_RAIN; Rain.value = FURY_MODE_RAIN;
Rain.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Rain.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | Rain.color_mode = MODE_COLORS_MODE_SPECIFIC;
MODE_FLAG_HAS_DIRECTION_UD; Rain.colors_min = 1;
Rain.color_mode = MODE_COLORS_MODE_SPECIFIC; Rain.colors_max = 10;
Rain.colors_min = 1;
Rain.colors_max = 10;
Rain.colors.assign(default_colors, default_colors + 10); Rain.colors.assign(default_colors, default_colors + 10);
Rain.speed_min = 28; Rain.speed_min = 28;
Rain.speed_max = 8; Rain.speed_max = 8;
Rain.speed = 25; Rain.speed = 25;
Rain.direction = MODE_DIRECTION_DOWN; Rain.direction = MODE_DIRECTION_DOWN;
Rain.brightness_min = 0; Rain.brightness_min = 0;
Rain.brightness_max = 100; Rain.brightness_max = 100;
Rain.brightness = 80; Rain.brightness = 80;
modes.push_back(Rain); modes.push_back(Rain);
mode Firework; mode Firework;
Firework.name = "Firework"; Firework.name = "Firework";
Firework.value = FURY_MODE_FIREWORK; Firework.value = FURY_MODE_FIREWORK;
Firework.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Firework.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS |
MODE_FLAG_HAS_DIRECTION_UD;
Firework.color_mode = MODE_COLORS_MODE_SPECIFIC; Firework.color_mode = MODE_COLORS_MODE_SPECIFIC;
Firework.colors_min = 1; Firework.colors_min = 1;
Firework.colors_max = 10; Firework.colors_max = 10;
@ -291,32 +274,28 @@ RGBController_KingstonFuryDRAM::RGBController_KingstonFuryDRAM(KingstonFuryDRAMC
modes.push_back(Firework); modes.push_back(Firework);
mode Voltage; mode Voltage;
Voltage.name = "Voltage"; Voltage.name = "Voltage";
Voltage.value = FURY_MODE_VOLTAGE; Voltage.value = FURY_MODE_VOLTAGE;
Voltage.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Voltage.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | Voltage.color_mode = MODE_COLORS_MODE_SPECIFIC;
MODE_FLAG_HAS_DIRECTION_UD; Voltage.colors_min = 2;
Voltage.color_mode = MODE_COLORS_MODE_SPECIFIC; Voltage.colors_max = 11;
Voltage.colors_min = 2;
Voltage.colors_max = 11;
Voltage.colors.assign(default_colors, default_colors + 10); Voltage.colors.assign(default_colors, default_colors + 10);
Voltage.colors.push_back(FURY_DEFAULT_BG_COLOR); Voltage.colors.push_back(FURY_DEFAULT_BG_COLOR);
Voltage.speed_min = 18; Voltage.speed_min = 18;
Voltage.speed_max = 5; Voltage.speed_max = 5;
Voltage.speed = 16; Voltage.speed = 16;
Voltage.direction = MODE_DIRECTION_UP; Voltage.direction = MODE_DIRECTION_UP;
Voltage.brightness_min = 0; Voltage.brightness_min = 0;
Voltage.brightness_max = 100; Voltage.brightness_max = 100;
Voltage.brightness = 80; Voltage.brightness = 80;
modes.push_back(Voltage); modes.push_back(Voltage);
#ifdef FURY_SYNC #ifdef FURY_SYNC
mode Countdown; mode Countdown;
Countdown.name = "Countdown"; Countdown.name = "Countdown";
Countdown.value = FURY_MODE_COUNTDOWN; Countdown.value = FURY_MODE_COUNTDOWN;
Countdown.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Countdown.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS |
MODE_FLAG_HAS_DIRECTION_UD;
Countdown.color_mode = MODE_COLORS_MODE_SPECIFIC; Countdown.color_mode = MODE_COLORS_MODE_SPECIFIC;
Countdown.colors_min = 2; Countdown.colors_min = 2;
Countdown.colors_max = 11; Countdown.colors_max = 11;
@ -333,18 +312,17 @@ RGBController_KingstonFuryDRAM::RGBController_KingstonFuryDRAM(KingstonFuryDRAMC
#endif #endif
mode Flame; mode Flame;
Flame.name = "Flame"; Flame.name = "Flame";
Flame.value = FURY_MODE_FLAME; Flame.value = FURY_MODE_FLAME;
Flame.flags = MODE_FLAG_HAS_SPEED | Flame.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD;
MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD; Flame.speed_min = 64;
Flame.speed_min = 64; Flame.speed_max = 40;
Flame.speed_max = 40; Flame.speed = 64;
Flame.speed = 64; Flame.direction = MODE_DIRECTION_UP;
Flame.direction = MODE_DIRECTION_UP; Flame.brightness_min = 0;
Flame.brightness_min = 0; Flame.brightness_max = 100;
Flame.brightness_max = 100; Flame.brightness = 80;
Flame.brightness = 80; Flame.color_mode = MODE_COLORS_NONE;
Flame.color_mode = MODE_COLORS_NONE;
modes.push_back(Flame); modes.push_back(Flame);
mode Twilight; mode Twilight;
@ -361,36 +339,34 @@ RGBController_KingstonFuryDRAM::RGBController_KingstonFuryDRAM(KingstonFuryDRAMC
modes.push_back(Twilight); modes.push_back(Twilight);
mode Fury; mode Fury;
Fury.name = "Fury"; Fury.name = "Fury";
Fury.value = FURY_MODE_FURY; Fury.value = FURY_MODE_FURY;
Fury.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | Fury.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD;
MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | Fury.color_mode = MODE_COLORS_MODE_SPECIFIC;
MODE_FLAG_HAS_DIRECTION_UD; Fury.colors_min = 2;
Fury.color_mode = MODE_COLORS_MODE_SPECIFIC; Fury.colors_max = 11;
Fury.colors_min = 2;
Fury.colors_max = 11;
Fury.colors.assign(default_colors, default_colors + 10); Fury.colors.assign(default_colors, default_colors + 10);
Fury.colors.push_back(FURY_DEFAULT_BG_COLOR); Fury.colors.push_back(FURY_DEFAULT_BG_COLOR);
Fury.speed_min = 255; Fury.speed_min = 255;
Fury.speed_max = 0; Fury.speed_max = 0;
Fury.speed = 76; Fury.speed = 76;
Fury.direction = MODE_DIRECTION_UP; Fury.direction = MODE_DIRECTION_UP;
Fury.brightness_min = 0; Fury.brightness_min = 0;
Fury.brightness_max = 100; Fury.brightness_max = 100;
Fury.brightness = 80; Fury.brightness = 80;
modes.push_back(Fury); modes.push_back(Fury);
mode Prism; mode Prism;
Prism.name = "Prism"; Prism.name = "Prism";
Prism.value = FURY_MODE_PRISM; Prism.value = FURY_MODE_PRISM;
Prism.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS; Prism.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS;
Prism.speed_min = 60; Prism.speed_min = 60;
Prism.speed_max = 0; Prism.speed_max = 0;
Prism.speed = 40; Prism.speed = 40;
Prism.brightness_min = 0; Prism.brightness_min = 0;
Prism.brightness_max = 100; Prism.brightness_max = 100;
Prism.brightness = 80; Prism.brightness = 80;
Prism.color_mode = MODE_COLORS_NONE; Prism.color_mode = MODE_COLORS_NONE;
modes.push_back(Prism); modes.push_back(Prism);
SetupZones(); SetupZones();

View file

@ -57,7 +57,7 @@ bool TestForPatriotViperController(i2c_smbus_interface* bus, unsigned char addre
* * * *
\******************************************************************************************/ \******************************************************************************************/
void DetectPatriotViperControllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots) void DetectPatriotViperControllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots, const std::string &/*name*/)
{ {
unsigned char slots_valid = 0x00; unsigned char slots_valid = 0x00;

View file

@ -55,7 +55,7 @@ bool TestForPatriotViperSteelController(i2c_smbus_interface* bus, unsigned char
* * * *
\******************************************************************************************/ \******************************************************************************************/
void DetectPatriotViperSteelControllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots) void DetectPatriotViperSteelControllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots, const std::string &/*name*/)
{ {
unsigned char slots_valid = 0x00; unsigned char slots_valid = 0x00;

View file

@ -123,7 +123,7 @@ bool TestForTForceXtreemController(i2c_smbus_interface* bus, unsigned char addre
* * * *
\******************************************************************************************/ \******************************************************************************************/
void DetectTForceXtreemControllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots) void DetectTForceXtreemControllers(i2c_smbus_interface* bus, std::vector<SPDWrapper*> &slots, const std::string &/*name*/)
{ {
LOG_DEBUG("[%s] Remapping ENE SMBus RAM modules on 0x77", DETECTOR_NAME); LOG_DEBUG("[%s] Remapping ENE SMBus RAM modules on 0x77", DETECTOR_NAME);

View file

@ -1260,7 +1260,7 @@ void ResourceManager::DetectDevicesCoroutine()
DetectionProgressChanged(); DetectionProgressChanged();
std::vector<SPDWrapper*> matching_slots = slots_with_jedec(slots, i2c_dimm_device_detectors[i2c_detector_idx].jedec_id); std::vector<SPDWrapper*> matching_slots = slots_with_jedec(slots, i2c_dimm_device_detectors[i2c_detector_idx].jedec_id);
i2c_dimm_device_detectors[i2c_detector_idx].function(busses[bus], matching_slots); i2c_dimm_device_detectors[i2c_detector_idx].function(busses[bus], matching_slots, i2c_dimm_device_detectors[i2c_detector_idx].name);
} }
LOG_TRACE("[%s] detection end", detection_string); LOG_TRACE("[%s] detection end", detection_string);

View file

@ -39,15 +39,15 @@ class ProfileManager;
class RGBController; class RGBController;
class SettingsManager; class SettingsManager;
typedef std::function<bool()> I2CBusDetectorFunction; typedef std::function<bool()> I2CBusDetectorFunction;
typedef std::function<void()> DeviceDetectorFunction; typedef std::function<void()> DeviceDetectorFunction;
typedef std::function<void(std::vector<i2c_smbus_interface*>&)> I2CDeviceDetectorFunction; typedef std::function<void(std::vector<i2c_smbus_interface*>&)> I2CDeviceDetectorFunction;
typedef std::function<void(i2c_smbus_interface*, std::vector<SPDWrapper*>&)> I2CDIMMDeviceDetectorFunction; typedef std::function<void(i2c_smbus_interface*, std::vector<SPDWrapper*>&, const std::string&)> I2CDIMMDeviceDetectorFunction;
typedef std::function<void(i2c_smbus_interface*, uint8_t, const std::string&)> I2CPCIDeviceDetectorFunction; typedef std::function<void(i2c_smbus_interface*, uint8_t, const std::string&)> I2CPCIDeviceDetectorFunction;
typedef std::function<void(hid_device_info*, const std::string&)> HIDDeviceDetectorFunction; typedef std::function<void(hid_device_info*, const std::string&)> HIDDeviceDetectorFunction;
typedef std::function<void(hidapi_wrapper wrapper, hid_device_info*, const std::string&)> HIDWrappedDeviceDetectorFunction; typedef std::function<void(hidapi_wrapper wrapper, hid_device_info*, const std::string&)> HIDWrappedDeviceDetectorFunction;
typedef std::function<void()> DynamicDetectorFunction; typedef std::function<void()> DynamicDetectorFunction;
typedef std::function<void()> PreDetectionHookFunction; typedef std::function<void()> PreDetectionHookFunction;
class BasicHIDBlock class BasicHIDBlock
{ {