diff --git a/OpenRGB.cpp b/OpenRGB.cpp index 083224889..2de00e114 100644 --- a/OpenRGB.cpp +++ b/OpenRGB.cpp @@ -316,7 +316,7 @@ void DetectRGBControllers(void) DetectAuraControllers(busses, rgb_controllers); //DetectAuraGPUControllers(busses, rgb_controllers); - //DetectCorsairControllers(busses, rgb_controllers); + DetectCorsairControllers(busses, rgb_controllers); //DetectCorsairProControllers(busses, rgb_controllers); //DetectCrucialControllers(busses, rgb_controllers); DetectHyperXControllers(busses, rgb_controllers); diff --git a/OpenRGB.pro b/OpenRGB.pro index c3dd54d5f..614218838 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -32,7 +32,7 @@ INCLUDEPATH += \ Controllers/AMDWraithPrismController/ \ Controllers/AuraController/ \ # Controllers/AuraGPUController/ \ -# Controllers/CorsairController/ \ + Controllers/CorsairController/ \ # Controllers/CorsairKeyboardController/ \ Controllers/CorsairLightingNodeController/ \ # Controllers/CorsairProController/ \ @@ -81,8 +81,8 @@ SOURCES += \ Controllers/AuraController/AuraControllerDetect.cpp \ # Controllers/AuraGPUController/AuraGPUController.cpp \ # Controllers/AuraGPUController/AuraGPUControllerDetect.cpp \ -# Controllers/CorsairController/CorsairController.cpp \ -# Controllers/CorsairController/CorsairControllerDetect.cpp \ + Controllers/CorsairController/CorsairController.cpp \ + Controllers/CorsairController/CorsairControllerDetect.cpp \ # Controllers/CorsairKeyboardController/CorsairKeyboardController.cpp \ # Controllers/CorsairKeyboardController/CorsairKeyboardControllerDetect.cpp \ Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp \ @@ -124,7 +124,7 @@ SOURCES += \ RGBController/RGBController_AMDWraithPrism.cpp \ RGBController/RGBController_Aura.cpp \ # RGBController/RGBController_AuraGPU.cpp \ -# RGBController/RGBController_Corsair.cpp \ + RGBController/RGBController_Corsair.cpp \ # RGBController/RGBController_CorsairKeyboard.cpp \ RGBController/RGBController_CorsairLightingNode.cpp \ # RGBController/RGBController_CorsairPro.cpp \ diff --git a/RGBController/RGBController_Corsair.cpp b/RGBController/RGBController_Corsair.cpp index f1bc392ed..7dcfde454 100644 --- a/RGBController/RGBController_Corsair.cpp +++ b/RGBController/RGBController_Corsair.cpp @@ -9,26 +9,6 @@ #include "RGBController_Corsair.h" -void RGBController_Corsair::UpdateLEDs() -{ - RGBColor color = colors[0]; - unsigned char red = RGBGetRValue(color); - unsigned char grn = RGBGetGValue(color); - unsigned char blu = RGBGetBValue(color); - - corsair->SetLEDColor(red, grn, blu); -} - -void RGBController_Corsair::UpdateZoneLEDs(int zone) -{ - UpdateLEDs(); -} - -void RGBController_Corsair::UpdateSingleLED(int led) -{ - UpdateLEDs(); -} - RGBController_Corsair::RGBController_Corsair(CorsairController* corsair_ptr) { corsair = corsair_ptr; @@ -59,31 +39,60 @@ RGBController_Corsair::RGBController_Corsair(CorsairController* corsair_ptr) Pulse.color_mode = MODE_COLORS_PER_LED; modes.push_back(Pulse); - for (unsigned int i = 0; i < corsair->GetLEDCount(); i++) + SetupZones(); +} + +void RGBController_Corsair::SetupZones() +{ + /*---------------------------------------------------------*\ + | Create a single zone | + \*---------------------------------------------------------*/ + zone new_zone; + new_zone.name = "Corsair Zone"; + new_zone.type = ZONE_TYPE_SINGLE; + new_zone.leds_min = corsair->GetLEDCount(); + new_zone.leds_max = corsair->GetLEDCount(); + new_zone.leds_count = corsair->GetLEDCount(); + zones.push_back(new_zone); + + /*---------------------------------------------------------*\ + | Set up LEDs | + \*---------------------------------------------------------*/ + for(std::size_t led_idx = 0; led_idx < zones[0].leds_count; led_idx++) { led* new_led = new led(); - new_led->name = "Corsair LED"; - leds.push_back(*new_led); - colors.push_back(0x00000000); } - zone new_zone; + SetupColors(); +} - new_zone.name = "Corsair Zone"; - new_zone.type = ZONE_TYPE_SINGLE; +void RGBController_Corsair::ResizeZone(int zone, int new_size) +{ + /*---------------------------------------------------------*\ + | This device does not support resizing zones | + \*---------------------------------------------------------*/ +} - std::vector zone_row; +void RGBController_Corsair::UpdateLEDs() +{ + RGBColor color = colors[0]; + unsigned char red = RGBGetRValue(color); + unsigned char grn = RGBGetGValue(color); + unsigned char blu = RGBGetBValue(color); - for (unsigned int i = 0; i < corsair->GetLEDCount(); i++) - { - zone_row.push_back(i); - } + corsair->SetLEDColor(red, grn, blu); +} - new_zone.map.push_back(zone_row); +void RGBController_Corsair::UpdateZoneLEDs(int zone) +{ + UpdateLEDs(); +} - zones.push_back(new_zone); +void RGBController_Corsair::UpdateSingleLED(int led) +{ + UpdateLEDs(); } void RGBController_Corsair::SetCustomMode() diff --git a/RGBController/RGBController_Corsair.h b/RGBController/RGBController_Corsair.h index b08de6e34..d0001da7d 100644 --- a/RGBController/RGBController_Corsair.h +++ b/RGBController/RGBController_Corsair.h @@ -16,6 +16,11 @@ class RGBController_Corsair : public RGBController { public: RGBController_Corsair(CorsairController* corsair_ptr); + + void SetupZones(); + + void ResizeZone(int zone, int new_size); + void UpdateLEDs(); void UpdateZoneLEDs(int zone); void UpdateSingleLED(int led);