From 6c8a46cc7da6bd2ed165fe10dfa6d7df4c6b9c79 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Sun, 10 Aug 2025 16:22:38 -0500 Subject: [PATCH] Store name in HyperXDRAMController to avoid setting it in detector --- .../HyperXDRAMController.cpp | 8 +- .../HyperXDRAMController.h | 5 +- .../HyperXDRAMControllerDetect.cpp | 10 +- .../RGBController_HyperXDRAM.cpp | 150 +++++++++--------- 4 files changed, 92 insertions(+), 81 deletions(-) diff --git a/Controllers/HyperXDRAMController/HyperXDRAMController.cpp b/Controllers/HyperXDRAMController/HyperXDRAMController.cpp index 3337cfa8..8253c87d 100644 --- a/Controllers/HyperXDRAMController/HyperXDRAMController.cpp +++ b/Controllers/HyperXDRAMController/HyperXDRAMController.cpp @@ -12,10 +12,11 @@ #include #include "HyperXDRAMController.h" -HyperXDRAMController::HyperXDRAMController(i2c_smbus_interface* bus, hyperx_dev_id dev, unsigned char slots) +HyperXDRAMController::HyperXDRAMController(i2c_smbus_interface* bus, hyperx_dev_id dev, unsigned char slots, std::string dev_name) { this->bus = bus; this->dev = dev; + this->name = dev_name; slots_valid = slots; led_count = 0; @@ -47,6 +48,11 @@ std::string HyperXDRAMController::GetDeviceLocation() return("I2C: " + return_string); } +std::string HyperXDRAMController::GetDeviceName() +{ + return(name); +} + unsigned int HyperXDRAMController::GetLEDCount() { return(led_count); diff --git a/Controllers/HyperXDRAMController/HyperXDRAMController.h b/Controllers/HyperXDRAMController/HyperXDRAMController.h index 81eecda2..574eb804 100644 --- a/Controllers/HyperXDRAMController/HyperXDRAMController.h +++ b/Controllers/HyperXDRAMController/HyperXDRAMController.h @@ -206,10 +206,12 @@ static const unsigned char slot_map[4] = class HyperXDRAMController { public: - HyperXDRAMController(i2c_smbus_interface* bus, hyperx_dev_id dev, unsigned char slots); + HyperXDRAMController(i2c_smbus_interface* bus, hyperx_dev_id dev, unsigned char slots, std::string dev_name); ~HyperXDRAMController(); std::string GetDeviceLocation(); + std::string GetDeviceName(); + unsigned int GetLEDCount(); unsigned int GetSlotCount(); unsigned int GetMode(); @@ -230,4 +232,5 @@ private: hyperx_dev_id dev; unsigned int mode; unsigned short speed; + std::string name; }; diff --git a/Controllers/HyperXDRAMController/HyperXDRAMControllerDetect.cpp b/Controllers/HyperXDRAMController/HyperXDRAMControllerDetect.cpp index adec3c99..a4e7cbf7 100644 --- a/Controllers/HyperXDRAMController/HyperXDRAMControllerDetect.cpp +++ b/Controllers/HyperXDRAMController/HyperXDRAMControllerDetect.cpp @@ -101,18 +101,20 @@ void DetectHyperXDRAMControllers(i2c_smbus_interface* bus, std::vectorname = "HyperX Fury RGB"; + name = "HyperX Fury RGB"; } else if(!fury_detected && pred_detected) { - rgb_controller->name = "HyperX Predator RGB"; + name = "HyperX Predator RGB"; } + HyperXDRAMController* controller = new HyperXDRAMController(bus, 0x27, slots_valid, name); + RGBController_HyperXDRAM* rgb_controller = new RGBController_HyperXDRAM(controller); + ResourceManager::get()->RegisterRGBController(rgb_controller); } } diff --git a/Controllers/HyperXDRAMController/RGBController_HyperXDRAM.cpp b/Controllers/HyperXDRAMController/RGBController_HyperXDRAM.cpp index d37dad4b..72ee7a63 100644 --- a/Controllers/HyperXDRAMController/RGBController_HyperXDRAM.cpp +++ b/Controllers/HyperXDRAMController/RGBController_HyperXDRAM.cpp @@ -24,113 +24,113 @@ RGBController_HyperXDRAM::RGBController_HyperXDRAM(HyperXDRAMController* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; - name = "HyperX DRAM"; - vendor = "HyperX"; - type = DEVICE_TYPE_DRAM; - description = "HyperX DRAM Device"; - location = controller->GetDeviceLocation(); + name = controller->GetDeviceName(); + vendor = "HyperX"; + type = DEVICE_TYPE_DRAM; + description = "HyperX DRAM Device"; + location = controller->GetDeviceLocation(); mode Direct; - Direct.name = "Direct"; - Direct.value = HYPERX_MODE_DIRECT; - Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Direct.color_mode = MODE_COLORS_PER_LED; + Direct.name = "Direct"; + Direct.value = HYPERX_MODE_DIRECT; + Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Direct.color_mode = MODE_COLORS_PER_LED; modes.push_back(Direct); mode Static; - Static.name = "Static"; - Static.value = HYPERX_MODE_STATIC; - Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR; - Static.colors_min = 1; - Static.colors_max = 1; - Static.color_mode = MODE_COLORS_MODE_SPECIFIC; + Static.name = "Static"; + Static.value = HYPERX_MODE_STATIC; + Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR; + Static.colors_min = 1; + Static.colors_max = 1; + Static.color_mode = MODE_COLORS_MODE_SPECIFIC; Static.colors.resize(1); modes.push_back(Static); mode Rainbow; - Rainbow.name = "Rainbow"; - Rainbow.value = HYPERX_MODE_RAINBOW; - Rainbow.flags = MODE_FLAG_HAS_SPEED; - Rainbow.speed_min = HYPERX_SPEED_RAINBOW_SLOW; - Rainbow.speed_max = HYPERX_SPEED_RAINBOW_FAST; - Rainbow.speed = HYPERX_SPEED_RAINBOW_NORMAL; - Rainbow.color_mode = MODE_COLORS_NONE; + Rainbow.name = "Rainbow"; + Rainbow.value = HYPERX_MODE_RAINBOW; + Rainbow.flags = MODE_FLAG_HAS_SPEED; + Rainbow.speed_min = HYPERX_SPEED_RAINBOW_SLOW; + Rainbow.speed_max = HYPERX_SPEED_RAINBOW_FAST; + Rainbow.speed = HYPERX_SPEED_RAINBOW_NORMAL; + Rainbow.color_mode = MODE_COLORS_NONE; modes.push_back(Rainbow); mode Comet; - Comet.name = "Comet"; - Comet.value = HYPERX_MODE_COMET; - Comet.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - Comet.speed_min = HYPERX_SPEED_COMET_SLOW; - Comet.speed_max = HYPERX_SPEED_COMET_FAST; - Comet.colors_min = 1; - Comet.colors_max = 1; - Comet.speed = HYPERX_SPEED_COMET_NORMAL; - Comet.color_mode = MODE_COLORS_MODE_SPECIFIC; + Comet.name = "Comet"; + Comet.value = HYPERX_MODE_COMET; + Comet.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; + Comet.speed_min = HYPERX_SPEED_COMET_SLOW; + Comet.speed_max = HYPERX_SPEED_COMET_FAST; + Comet.colors_min = 1; + Comet.colors_max = 1; + Comet.speed = HYPERX_SPEED_COMET_NORMAL; + Comet.color_mode = MODE_COLORS_MODE_SPECIFIC; Comet.colors.resize(1); modes.push_back(Comet); mode Heartbeat; - Heartbeat.name = "Heartbeat"; - Heartbeat.value = HYPERX_MODE_HEARTBEAT; - Heartbeat.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - Heartbeat.speed_min = HYPERX_SPEED_COMET_SLOW; - Heartbeat.speed_max = HYPERX_SPEED_COMET_FAST; - Heartbeat.colors_min = 1; - Heartbeat.colors_max = 1; - Heartbeat.speed = HYPERX_SPEED_COMET_NORMAL; - Heartbeat.color_mode = MODE_COLORS_MODE_SPECIFIC; + Heartbeat.name = "Heartbeat"; + Heartbeat.value = HYPERX_MODE_HEARTBEAT; + Heartbeat.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; + Heartbeat.speed_min = HYPERX_SPEED_COMET_SLOW; + Heartbeat.speed_max = HYPERX_SPEED_COMET_FAST; + Heartbeat.colors_min = 1; + Heartbeat.colors_max = 1; + Heartbeat.speed = HYPERX_SPEED_COMET_NORMAL; + Heartbeat.color_mode = MODE_COLORS_MODE_SPECIFIC; Heartbeat.colors.resize(1); modes.push_back(Heartbeat); mode SpectrumCycle; - SpectrumCycle.name = "Spectrum Cycle"; - SpectrumCycle.value = HYPERX_MODE_CYCLE; - SpectrumCycle.flags = MODE_FLAG_HAS_SPEED; - SpectrumCycle.speed_min = HYPERX_SPEED_CYCLE_SLOW; - SpectrumCycle.speed_max = HYPERX_SPEED_CYCLE_FAST; - SpectrumCycle.speed = HYPERX_SPEED_CYCLE_NORMAL; - SpectrumCycle.color_mode = MODE_COLORS_NONE; + SpectrumCycle.name = "Spectrum Cycle"; + SpectrumCycle.value = HYPERX_MODE_CYCLE; + SpectrumCycle.flags = MODE_FLAG_HAS_SPEED; + SpectrumCycle.speed_min = HYPERX_SPEED_CYCLE_SLOW; + SpectrumCycle.speed_max = HYPERX_SPEED_CYCLE_FAST; + SpectrumCycle.speed = HYPERX_SPEED_CYCLE_NORMAL; + SpectrumCycle.color_mode = MODE_COLORS_NONE; modes.push_back(SpectrumCycle); mode Breathing; - Breathing.name = "Breathing"; - Breathing.value = HYPERX_MODE_BREATHING; - Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - Breathing.speed_min = HYPERX_SPEED_BREATHING_SLOW; - Breathing.speed_max = HYPERX_SPEED_BREATHING_FAST; - Breathing.colors_min = 1; - Breathing.colors_max = 1; - Breathing.speed = HYPERX_SPEED_BREATHING_NORMAL; - Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC; + Breathing.name = "Breathing"; + Breathing.value = HYPERX_MODE_BREATHING; + Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; + Breathing.speed_min = HYPERX_SPEED_BREATHING_SLOW; + Breathing.speed_max = HYPERX_SPEED_BREATHING_FAST; + Breathing.colors_min = 1; + Breathing.colors_max = 1; + Breathing.speed = HYPERX_SPEED_BREATHING_NORMAL; + Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC; Breathing.colors.resize(1); modes.push_back(Breathing); mode Bounce; - Bounce.name = "Bounce"; - Bounce.value = HYPERX_MODE_BOUNCE; - Bounce.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - Bounce.speed_min = HYPERX_SPEED_BOUNCE_SLOW; - Bounce.speed_max = HYPERX_SPEED_BOUNCE_FAST; - Bounce.colors_min = 1; - Bounce.colors_max = 1; - Bounce.speed = HYPERX_SPEED_BOUNCE_NORMAL; - Bounce.color_mode = MODE_COLORS_MODE_SPECIFIC; + Bounce.name = "Bounce"; + Bounce.value = HYPERX_MODE_BOUNCE; + Bounce.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; + Bounce.speed_min = HYPERX_SPEED_BOUNCE_SLOW; + Bounce.speed_max = HYPERX_SPEED_BOUNCE_FAST; + Bounce.colors_min = 1; + Bounce.colors_max = 1; + Bounce.speed = HYPERX_SPEED_BOUNCE_NORMAL; + Bounce.color_mode = MODE_COLORS_MODE_SPECIFIC; Bounce.colors.resize(1); modes.push_back(Bounce); mode Blink; - Blink.name = "Blink"; - Blink.value = HYPERX_MODE_BLINK; - Blink.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - Blink.speed_min = HYPERX_SPEED_BLINK_SLOW; - Blink.speed_max = HYPERX_SPEED_BLINK_FAST; - Blink.colors_min = 1; - Blink.colors_max = 1; - Blink.speed = HYPERX_SPEED_BLINK_NORMAL; - Blink.color_mode = MODE_COLORS_MODE_SPECIFIC; + Blink.name = "Blink"; + Blink.value = HYPERX_MODE_BLINK; + Blink.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; + Blink.speed_min = HYPERX_SPEED_BLINK_SLOW; + Blink.speed_max = HYPERX_SPEED_BLINK_FAST; + Blink.colors_min = 1; + Blink.colors_max = 1; + Blink.speed = HYPERX_SPEED_BLINK_NORMAL; + Blink.color_mode = MODE_COLORS_MODE_SPECIFIC; Blink.colors.resize(1); modes.push_back(Blink);