diff --git a/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.cpp b/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.cpp index 75dad979..9f6f3946 100644 --- a/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.cpp +++ b/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.cpp @@ -14,10 +14,11 @@ using namespace std::chrono_literals; -RGBFusion2GPUController::RGBFusion2GPUController(i2c_smbus_interface* bus, rgb_fusion_dev_id dev) +RGBFusion2GPUController::RGBFusion2GPUController(i2c_smbus_interface* bus, rgb_fusion_dev_id dev, std::string dev_name) { - this->bus = bus; - this->dev = dev; + this->bus = bus; + this->dev = dev; + this->name = dev_name; } RGBFusion2GPUController::~RGBFusion2GPUController() @@ -35,6 +36,11 @@ std::string RGBFusion2GPUController::GetDeviceLocation() return("I2C: " + return_string); } +std::string RGBFusion2GPUController::GetDeviceName() +{ + return(name); +} + void RGBFusion2GPUController::SaveConfig() { uint8_t data_pkt[8] = { 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.h b/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.h index d0c63743..90595c7e 100644 --- a/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.h +++ b/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.h @@ -61,12 +61,14 @@ enum class RGBFusion2GPUController { public: - RGBFusion2GPUController(i2c_smbus_interface* bus, rgb_fusion_dev_id dev); + RGBFusion2GPUController(i2c_smbus_interface* bus, rgb_fusion_dev_id dev, std::string dev_name); ~RGBFusion2GPUController(); RGBColor zone_color[4]; std::string GetDeviceLocation(); + std::string GetDeviceName(); + void SaveConfig(); void SetZone(uint8_t zone, uint8_t mode, fusion2_config zone_config); @@ -75,5 +77,5 @@ public: private: i2c_smbus_interface* bus; rgb_fusion_dev_id dev; - + std::string name; }; diff --git a/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUControllerDetect.cpp b/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUControllerDetect.cpp index 3b815441..9c2d87f2 100644 --- a/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUControllerDetect.cpp +++ b/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUControllerDetect.cpp @@ -91,9 +91,8 @@ void DetectGigabyteRGBFusion2GPUControllers(i2c_smbus_interface* bus, uint8_t i2 // Check for RGB Fusion2 controller if(TestForGigabyteRGBFusion2GPUController(bus, i2c_addr)) { - RGBFusion2GPUController* controller = new RGBFusion2GPUController(bus, i2c_addr); + RGBFusion2GPUController* controller = new RGBFusion2GPUController(bus, i2c_addr, name); RGBController_RGBFusion2GPU* rgb_controller = new RGBController_RGBFusion2GPU(controller); - rgb_controller->name = name; ResourceManager::get()->RegisterRGBController(rgb_controller); } diff --git a/Controllers/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.cpp b/Controllers/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.cpp index ff491a2a..788979f6 100644 --- a/Controllers/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.cpp +++ b/Controllers/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.cpp @@ -23,62 +23,61 @@ RGBController_RGBFusion2GPU::RGBController_RGBFusion2GPU(RGBFusion2GPUController* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; - name = "Gigabyte GPU"; - vendor = "Gigabyte"; - description = "Gigabyte RGB Fusion 2 GPU"; - location = controller->GetDeviceLocation(); - - type = DEVICE_TYPE_GPU; + name = controller->GetDeviceName(); + vendor = "Gigabyte"; + description = "Gigabyte RGB Fusion 2 GPU Device"; + location = controller->GetDeviceLocation(); + type = DEVICE_TYPE_GPU; mode Direct; - Direct.name = "Direct"; - Direct.value = RGB_FUSION2_GPU_MODE_STATIC; - Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; - Direct.color_mode = MODE_COLORS_PER_LED; - Direct.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; - Direct.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; - Direct.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Direct.name = "Direct"; + Direct.value = RGB_FUSION2_GPU_MODE_STATIC; + Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; + Direct.color_mode = MODE_COLORS_PER_LED; + Direct.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; + Direct.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Direct.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; modes.push_back(Direct); mode Breathing; - Breathing.name = "Pulse"; - Breathing.value = RGB_FUSION2_GPU_MODE_BREATHING; - Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE; - Breathing.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; - Breathing.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; - Breathing.speed = RGB_FUSION2_GPU_SPEED_NORMAL; - Breathing.color_mode = MODE_COLORS_PER_LED; - Breathing.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; - Breathing.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; - Breathing.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Breathing.name = "Pulse"; + Breathing.value = RGB_FUSION2_GPU_MODE_BREATHING; + Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE; + Breathing.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; + Breathing.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; + Breathing.speed = RGB_FUSION2_GPU_SPEED_NORMAL; + Breathing.color_mode = MODE_COLORS_PER_LED; + Breathing.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; + Breathing.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Breathing.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; modes.push_back(Breathing); mode Flashing; - Flashing.name = "Flash"; - Flashing.value = RGB_FUSION2_GPU_MODE_FLASHING; - Flashing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; - Flashing.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; - Flashing.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; - Flashing.speed = RGB_FUSION2_GPU_SPEED_NORMAL; - Flashing.color_mode = MODE_COLORS_PER_LED; - Flashing.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; - Flashing.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; - Flashing.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Flashing.name = "Flash"; + Flashing.value = RGB_FUSION2_GPU_MODE_FLASHING; + Flashing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; + Flashing.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; + Flashing.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; + Flashing.speed = RGB_FUSION2_GPU_SPEED_NORMAL; + Flashing.color_mode = MODE_COLORS_PER_LED; + Flashing.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; + Flashing.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Flashing.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; modes.push_back(Flashing); mode DualFlashing; - DualFlashing.name = "Double Flash"; - DualFlashing.value = RGB_FUSION2_GPU_MODE_DUAL_FLASHING; - DualFlashing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; - DualFlashing.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; - DualFlashing.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; - DualFlashing.speed = RGB_FUSION2_GPU_SPEED_NORMAL; - DualFlashing.color_mode = MODE_COLORS_PER_LED; - DualFlashing.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; - DualFlashing.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; - DualFlashing.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + DualFlashing.name = "Double Flash"; + DualFlashing.value = RGB_FUSION2_GPU_MODE_DUAL_FLASHING; + DualFlashing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; + DualFlashing.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; + DualFlashing.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; + DualFlashing.speed = RGB_FUSION2_GPU_SPEED_NORMAL; + DualFlashing.color_mode = MODE_COLORS_PER_LED; + DualFlashing.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; + DualFlashing.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + DualFlashing.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; modes.push_back(DualFlashing); mode SpectrumCycle; @@ -95,61 +94,61 @@ RGBController_RGBFusion2GPU::RGBController_RGBFusion2GPU(RGBFusion2GPUController modes.push_back(SpectrumCycle); mode Gradient; - Gradient.name = "Gradient"; - Gradient.value = RGB_FUSION2_GPU_MODE_GRADIENT; - Gradient.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; - Gradient.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; - Gradient.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; - Gradient.speed = RGB_FUSION2_GPU_SPEED_NORMAL; - Gradient.color_mode = MODE_COLORS_PER_LED; - Gradient.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; - Gradient.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; - Gradient.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Gradient.name = "Gradient"; + Gradient.value = RGB_FUSION2_GPU_MODE_GRADIENT; + Gradient.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; + Gradient.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; + Gradient.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; + Gradient.speed = RGB_FUSION2_GPU_SPEED_NORMAL; + Gradient.color_mode = MODE_COLORS_PER_LED; + Gradient.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; + Gradient.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Gradient.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; modes.push_back(Gradient); mode Wave; - Wave.name = "Wave"; - Wave.value = RGB_FUSION2_GPU_MODE_WAVE; - Wave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; - Wave.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; - Wave.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; - Wave.speed = RGB_FUSION2_GPU_SPEED_NORMAL; - Wave.color_mode = MODE_COLORS_NONE; - Wave.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; - Wave.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; - Wave.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Wave.name = "Wave"; + Wave.value = RGB_FUSION2_GPU_MODE_WAVE; + Wave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; + Wave.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; + Wave.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; + Wave.speed = RGB_FUSION2_GPU_SPEED_NORMAL; + Wave.color_mode = MODE_COLORS_NONE; + Wave.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; + Wave.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Wave.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; modes.push_back(Wave); mode Shift; - Shift.name = "Color Shift"; - Shift.value = RGB_FUSION2_GPU_MODE_COLOR_SHIFT; - Shift.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; - Shift.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; - Shift.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; - Shift.speed = RGB_FUSION2_GPU_SPEED_NORMAL; - Shift.color_mode = MODE_COLORS_MODE_SPECIFIC; - Shift.colors_min = 1; - Shift.colors_max = 8; + Shift.name = "Color Shift"; + Shift.value = RGB_FUSION2_GPU_MODE_COLOR_SHIFT; + Shift.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; + Shift.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; + Shift.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; + Shift.speed = RGB_FUSION2_GPU_SPEED_NORMAL; + Shift.color_mode = MODE_COLORS_MODE_SPECIFIC; + Shift.colors_min = 1; + Shift.colors_max = 8; Shift.colors.resize(8); - Shift.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; - Shift.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; - Shift.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Shift.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; + Shift.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Shift.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; modes.push_back(Shift); mode Tricolor; - Tricolor.name = "Tricolor"; - Tricolor.value = RGB_FUSION2_GPU_MODE_TRICOLOR; - Tricolor.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; - Tricolor.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; - Tricolor.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; - Tricolor.speed = RGB_FUSION2_GPU_SPEED_NORMAL; - Tricolor.color_mode = MODE_COLORS_MODE_SPECIFIC; - Tricolor.colors_min = 1; - Tricolor.colors_max = 3; + Tricolor.name = "Tricolor"; + Tricolor.value = RGB_FUSION2_GPU_MODE_TRICOLOR; + Tricolor.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE; + Tricolor.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST; + Tricolor.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST; + Tricolor.speed = RGB_FUSION2_GPU_SPEED_NORMAL; + Tricolor.color_mode = MODE_COLORS_MODE_SPECIFIC; + Tricolor.colors_min = 1; + Tricolor.colors_max = 3; Tricolor.colors.resize(3); - Tricolor.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; - Tricolor.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; - Tricolor.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Tricolor.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN; + Tricolor.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX; + Tricolor.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX; modes.push_back(Tricolor); SetupZones(); @@ -180,6 +179,7 @@ void RGBController_RGBFusion2GPU::SetupZones() new_zone.matrix_map = NULL; new_led.name = new_zone.name; + /*---------------------------------------------------------*\ | Push the zone and LED on to device vectors | \*---------------------------------------------------------*/