Update ThermalTake Poseidon Z RGB controller to new RGBController API

This commit is contained in:
Adam Honse
2020-03-07 17:46:38 -06:00
parent aa6e2e611b
commit e0094915fe
4 changed files with 46 additions and 30 deletions

View File

@@ -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);

View File

@@ -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 \

View File

@@ -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<int> 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)

View File

@@ -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);