diff --git a/OpenRGB.cpp b/OpenRGB.cpp index 902184317..d7703d0a1 100644 --- a/OpenRGB.cpp +++ b/OpenRGB.cpp @@ -333,7 +333,7 @@ void DetectRGBControllers(void) DetectAMDWraithPrismControllers(rgb_controllers); DetectMSI3ZoneControllers(rgb_controllers); - //DetectPoseidonZRGBControllers(rgb_controllers); + DetectPoseidonZRGBControllers(rgb_controllers); DetectHyperXKeyboardControllers(rgb_controllers); //DetectCorsairKeyboardControllers(rgb_controllers); DetectCorsairLightingNodeControllers(rgb_controllers); diff --git a/OpenRGB.pro b/OpenRGB.pro index f3d26abf1..ed36c7e48 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -46,7 +46,7 @@ INCLUDEPATH += \ Controllers/MSIRGBController/ \ # Controllers/PatriotViperController/ \ Controllers/PolychromeController/ \ -# Controllers/PoseidonZRGBController/ \ + Controllers/PoseidonZRGBController/ \ Controllers/RGBFusionController/ \ # Controllers/RGBFusion2Controller/ \ Controllers/RGBFusionGPUController/ \ @@ -109,8 +109,8 @@ SOURCES += \ # Controllers/PatriotViperController/PatriotViperControllerDetect.cpp \ Controllers/PolychromeController/PolychromeController.cpp \ Controllers/PolychromeController/PolychromeControllerDetect.cpp \ -# Controllers/PoseidonZRGBController/PoseidonZRGBController.cpp \ -# Controllers/PoseidonZRGBController/PoseidonZRGBControllerDetect.cpp \ + Controllers/PoseidonZRGBController/PoseidonZRGBController.cpp \ + Controllers/PoseidonZRGBController/PoseidonZRGBControllerDetect.cpp \ Controllers/RGBFusionController/RGBFusionController.cpp \ Controllers/RGBFusionController/RGBFusionControllerDetect.cpp \ # Controllers/RGBFusion2Controller/RGBFusion2Controller.cpp \ @@ -140,7 +140,7 @@ SOURCES += \ RGBController/RGBController_MSIRGB.cpp \ # RGBController/RGBController_PatriotViper.cpp \ RGBController/RGBController_Polychrome.cpp \ -# RGBController/RGBController_PoseidonZRGB.cpp \ + RGBController/RGBController_PoseidonZRGB.cpp \ RGBController/RGBController_RGBFusion.cpp \ # RGBController/RGBController_RGBFusion2.cpp \ RGBController/RGBController_RGBFusionGPU.cpp \ diff --git a/RGBController/RGBController_PoseidonZRGB.cpp b/RGBController/RGBController_PoseidonZRGB.cpp index 238382b4d..15bbbbca3 100644 --- a/RGBController/RGBController_PoseidonZRGB.cpp +++ b/RGBController/RGBController_PoseidonZRGB.cpp @@ -173,31 +173,7 @@ RGBController_PoseidonZRGB::RGBController_PoseidonZRGB(PoseidonZRGBController* p Reactive.color_mode = MODE_COLORS_NONE; modes.push_back(Reactive); - colors.resize(104); - - unsigned int led_idx = 0; - for(unsigned int zone_idx = 0; zone_idx < 1; 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_PoseidonZRGB::~RGBController_PoseidonZRGB() @@ -205,6 +181,41 @@ RGBController_PoseidonZRGB::~RGBController_PoseidonZRGB() } +void RGBController_PoseidonZRGB::SetupZones() +{ + /*---------------------------------------------------------*\ + | Set up zones | + \*---------------------------------------------------------*/ + unsigned int total_led_count = 0; + for(unsigned int zone_idx = 0; zone_idx < 1; 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_PoseidonZRGB::ResizeZone(int zone, int new_size) +{ + /*---------------------------------------------------------*\ + | This device does not support resizing zones | + \*---------------------------------------------------------*/ +} + void RGBController_PoseidonZRGB::UpdateLEDs() { if(active_mode == 0) diff --git a/RGBController/RGBController_PoseidonZRGB.h b/RGBController/RGBController_PoseidonZRGB.h index fc5a1d78a..11244ba3c 100644 --- a/RGBController/RGBController_PoseidonZRGB.h +++ b/RGBController/RGBController_PoseidonZRGB.h @@ -16,6 +16,11 @@ class RGBController_PoseidonZRGB : public RGBController public: RGBController_PoseidonZRGB(PoseidonZRGBController* poseidon_ptr); ~RGBController_PoseidonZRGB(); + + void SetupZones(); + + void ResizeZone(int zone, int new_size); + void UpdateLEDs(); void UpdateZoneLEDs(int zone); void UpdateSingleLED(int led);