diff --git a/OpenRGB.cpp b/OpenRGB.cpp index 4936e1c61..096fef332 100644 --- a/OpenRGB.cpp +++ b/OpenRGB.cpp @@ -335,7 +335,7 @@ void DetectRGBControllers(void) DetectMSI3ZoneControllers(rgb_controllers); DetectPoseidonZRGBControllers(rgb_controllers); DetectHyperXKeyboardControllers(rgb_controllers); - //DetectCorsairKeyboardControllers(rgb_controllers); + DetectCorsairKeyboardControllers(rgb_controllers); DetectCorsairLightingNodeControllers(rgb_controllers); DetectThermaltakeRiingControllers(rgb_controllers); //DetectRGBFusion2Controllers(rgb_controllers); diff --git a/OpenRGB.pro b/OpenRGB.pro index a4209e362..a35d48bee 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -33,8 +33,8 @@ INCLUDEPATH += \ Controllers/AuraController/ \ Controllers/AuraGPUController/ \ Controllers/CorsairController/ \ -# Controllers/CorsairKeyboardController/ \ - Controllers/CorsairLightingNodeController/ \ + Controllers/CorsairKeyboardController/ \ + Controllers/CorsairLightingNodeController/ \ Controllers/CorsairProController/ \ Controllers/CrucialController/ \ Controllers/Hue2Controller/ \ @@ -68,10 +68,10 @@ SOURCES += \ i2c_tools/i2c_tools.cpp \ net_port/net_port.cpp \ qt/OpenRGBDialog2.cpp \ - qt/OpenRGBProfileSaveDialog.cpp \ - qt/OpenRGBSoftwareInfoPage.cpp \ + qt/OpenRGBProfileSaveDialog.cpp \ + qt/OpenRGBSoftwareInfoPage.cpp \ qt/OpenRGBSystemInfoPage.cpp \ - qt/OpenRGBZoneResizeDialog.cpp \ + qt/OpenRGBZoneResizeDialog.cpp \ qt/hsv.cpp \ serial_port/serial_port.cpp \ super_io/super_io.cpp \ @@ -83,8 +83,8 @@ SOURCES += \ Controllers/AuraGPUController/AuraGPUControllerDetect.cpp \ Controllers/CorsairController/CorsairController.cpp \ Controllers/CorsairController/CorsairControllerDetect.cpp \ -# Controllers/CorsairKeyboardController/CorsairKeyboardController.cpp \ -# Controllers/CorsairKeyboardController/CorsairKeyboardControllerDetect.cpp \ + Controllers/CorsairKeyboardController/CorsairKeyboardController.cpp \ + Controllers/CorsairKeyboardController/CorsairKeyboardControllerDetect.cpp \ Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp \ Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp \ Controllers/CorsairProController/CorsairProController.cpp \ @@ -125,7 +125,7 @@ SOURCES += \ RGBController/RGBController_Aura.cpp \ RGBController/RGBController_AuraGPU.cpp \ RGBController/RGBController_Corsair.cpp \ -# RGBController/RGBController_CorsairKeyboard.cpp \ + RGBController/RGBController_CorsairKeyboard.cpp \ RGBController/RGBController_CorsairLightingNode.cpp \ RGBController/RGBController_CorsairPro.cpp \ RGBController/RGBController_Crucial.cpp \ @@ -155,10 +155,10 @@ HEADERS += \ i2c_tools/i2c_tools.h \ net_port/net_port.h \ qt/OpenRGBDialog2.h \ - qt/OpenRGBProfileSaveDialog.h \ - qt/OpenRGBSoftwareInfoPage.h \ + qt/OpenRGBProfileSaveDialog.h \ + qt/OpenRGBSoftwareInfoPage.h \ qt/OpenRGBSystemInfoPage.h \ - qt/OpenRGBZoneResizeDialog.h \ + qt/OpenRGBZoneResizeDialog.h \ serial_port/find_usb_serial_port.h \ serial_port/serial_port.h \ super_io/super_io.h \ diff --git a/RGBController/RGBController_CorsairKeyboard.cpp b/RGBController/RGBController_CorsairKeyboard.cpp index 84b0d90cc..93f67c9ee 100644 --- a/RGBController/RGBController_CorsairKeyboard.cpp +++ b/RGBController/RGBController_CorsairKeyboard.cpp @@ -151,31 +151,7 @@ RGBController_CorsairKeyboard::RGBController_CorsairKeyboard(CorsairKeyboardCont Direct.color_mode = MODE_COLORS_PER_LED; modes.push_back(Direct); - colors.resize(111); - - unsigned int led_idx = 0; - for(unsigned int zone_idx = 0; zone_idx < 2; zone_idx++) - { - zone new_zone; - new_zone.name.append(zone_names[zone_idx]); - - std::vector new_zone_map; - - for(unsigned int led_count = 0; led_count < zone_sizes[zone_idx]; led_count++) - { - led new_led; - new_led.name.append(led_names[led_idx]); - leds.push_back(new_led); - - new_zone_map.push_back(led_idx); - - led_idx++; - } - - new_zone.map.push_back(new_zone_map); - - zones.push_back(new_zone); - } + SetupZones(); } RGBController_CorsairKeyboard::~RGBController_CorsairKeyboard() @@ -183,6 +159,41 @@ RGBController_CorsairKeyboard::~RGBController_CorsairKeyboard() } +void RGBController_CorsairKeyboard::SetupZones() +{ + /*---------------------------------------------------------*\ + | Set up zones | + \*---------------------------------------------------------*/ + unsigned int total_led_count = 0; + for(unsigned int zone_idx = 0; zone_idx < 2; zone_idx++) + { + zone new_zone; + new_zone.name = zone_names[zone_idx]; + new_zone.leds_min = zone_sizes[zone_idx]; + new_zone.leds_max = zone_sizes[zone_idx]; + new_zone.leds_count = zone_sizes[zone_idx]; + zones.push_back(new_zone); + + total_led_count += zone_sizes[zone_idx]; + } + + for(unsigned int led_idx = 0; led_idx < total_led_count; led_idx++) + { + led new_led; + new_led.name = led_names[led_idx]; + leds.push_back(new_led); + } + + SetupColors(); +} + +void RGBController_CorsairKeyboard::ResizeZone(int /*zone*/, int /*new_size*/) +{ + /*---------------------------------------------------------*\ + | This device does not support resizing zones | + \*---------------------------------------------------------*/ +} + void RGBController_CorsairKeyboard::UpdateLEDs() { corsair->SetLEDs(colors); diff --git a/RGBController/RGBController_CorsairKeyboard.h b/RGBController/RGBController_CorsairKeyboard.h index 5266f79b5..1e07c5307 100644 --- a/RGBController/RGBController_CorsairKeyboard.h +++ b/RGBController/RGBController_CorsairKeyboard.h @@ -17,6 +17,10 @@ public: RGBController_CorsairKeyboard(CorsairKeyboardController* corsair_ptr); ~RGBController_CorsairKeyboard(); + void SetupZones(); + + void ResizeZone(int zone, int new_size); + void UpdateLEDs(); void UpdateZoneLEDs(int zone); void UpdateSingleLED(int led);