Update Corsair Vengeance RGB Pro controller to new RGBController API

master
Adam Honse 6 years ago
parent acc84f6a09
commit 3abb0c05ba

@ -317,7 +317,7 @@ void DetectRGBControllers(void)
DetectAuraControllers(busses, rgb_controllers);
DetectAuraGPUControllers(busses, rgb_controllers);
DetectCorsairControllers(busses, rgb_controllers);
//DetectCorsairProControllers(busses, rgb_controllers);
DetectCorsairProControllers(busses, rgb_controllers);
//DetectCrucialControllers(busses, rgb_controllers);
DetectHyperXControllers(busses, rgb_controllers);
//DetectPatriotViperControllers(busses, rgb_controllers);

@ -35,7 +35,7 @@ INCLUDEPATH += \
Controllers/CorsairController/ \
# Controllers/CorsairKeyboardController/ \
Controllers/CorsairLightingNodeController/ \
# Controllers/CorsairProController/ \
Controllers/CorsairProController/ \
# Controllers/CrucialController/ \
Controllers/Hue2Controller/ \
Controllers/HuePlusController/ \
@ -87,8 +87,8 @@ SOURCES += \
# Controllers/CorsairKeyboardController/CorsairKeyboardControllerDetect.cpp \
Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp \
Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp \
# Controllers/CorsairProController/CorsairProController.cpp \
# Controllers/CorsairProController/CorsairProControllerDetect.cpp \
Controllers/CorsairProController/CorsairProController.cpp \
Controllers/CorsairProController/CorsairProControllerDetect.cpp \
# Controllers/CrucialController/CrucialController.cpp \
# Controllers/CrucialController/CrucialControllerDetect.cpp \
Controllers/Hue2Controller/Hue2Controller.cpp \
@ -127,7 +127,7 @@ SOURCES += \
RGBController/RGBController_Corsair.cpp \
# RGBController/RGBController_CorsairKeyboard.cpp \
RGBController/RGBController_CorsairLightingNode.cpp \
# RGBController/RGBController_CorsairPro.cpp \
RGBController/RGBController_CorsairPro.cpp \
# RGBController/RGBController_Crucial.cpp \
RGBController/RGBController_Dummy.cpp \
RGBController/RGBController_Hue2.cpp \

@ -9,36 +9,6 @@
#include "RGBController_CorsairPro.h"
void RGBController_CorsairPro::UpdateLEDs()
{
for (std::size_t led = 0; led < colors.size(); led++)
{
RGBColor color = colors[led];
unsigned char red = RGBGetRValue(color);
unsigned char grn = RGBGetGValue(color);
unsigned char blu = RGBGetBValue(color);
corsair->SetLEDColor(led, red, grn, blu);
}
corsair->ApplyColors();
}
void RGBController_CorsairPro::UpdateZoneLEDs(int zone)
{
UpdateLEDs();
}
void RGBController_CorsairPro::UpdateSingleLED(int led)
{
RGBColor color = colors[led];
unsigned char red = RGBGetRValue(color);
unsigned char grn = RGBGetGValue(color);
unsigned char blu = RGBGetBValue(color);
corsair->SetLEDColor(led, red, grn, blu);
corsair->ApplyColors();
}
RGBController_CorsairPro::RGBController_CorsairPro(CorsairProController* corsair_ptr)
{
corsair = corsair_ptr;
@ -97,8 +67,8 @@ RGBController_CorsairPro::RGBController_CorsairPro(CorsairProController* corsair
ColorWave.direction = MODE_DIRECTION_DOWN;
ColorWave.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorWave.colors.resize(2);
modes.push_back(ColorWave);
modes.push_back(ColorWave);
mode Visor;
Visor.name = "Visor";
Visor.value = CORSAIR_PRO_MODE_VISOR;
@ -139,7 +109,7 @@ RGBController_CorsairPro::RGBController_CorsairPro(CorsairProController* corsair
Marquee.color_mode = MODE_COLORS_MODE_SPECIFIC;
Marquee.colors.resize(1);
modes.push_back(Marquee);
mode Rainbow;
Rainbow.name = "Rainbow";
Rainbow.value = CORSAIR_PRO_MODE_RAINBOW;
@ -149,7 +119,7 @@ RGBController_CorsairPro::RGBController_CorsairPro(CorsairProController* corsair
Rainbow.speed = CORSAIR_PRO_SPEED_SLOW;
Rainbow.color_mode = MODE_COLORS_NONE;
modes.push_back(Rainbow);
mode Sequential;
Sequential.name = "Sequential";
Sequential.value = CORSAIR_PRO_MODE_SEQUENTIAL;
@ -174,34 +144,73 @@ RGBController_CorsairPro::RGBController_CorsairPro(CorsairProController* corsair
Static.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Static);
SetupZones();
active_mode = 9;
}
colors.resize(corsair->GetLEDCount());
void RGBController_CorsairPro::SetupZones()
{
/*---------------------------------------------------------*\
| Set up zone |
\*---------------------------------------------------------*/
zone new_zone;
new_zone.name = "Corsair Pro Zone";
new_zone.type = ZONE_TYPE_LINEAR;
new_zone.leds_min = corsair->GetLEDCount();
new_zone.leds_max = corsair->GetLEDCount();
new_zone.leds_count = corsair->GetLEDCount();
zones.push_back(new_zone);
for (unsigned int i = 0; i < corsair->GetLEDCount(); i++)
/*---------------------------------------------------------*\
| 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 Pro LED";
new_led->name = "Corsair Pro LED ";
new_led->name.append(std::to_string(led_idx));
leds.push_back(*new_led);
}
zone new_zone;
new_zone.name = "Corsair Pro Zone";
new_zone.type = ZONE_TYPE_LINEAR;
SetupColors();
}
std::vector<int> zone_row;
void RGBController_CorsairPro::ResizeZone(int /*zone*/, int /*new_size*/)
{
/*---------------------------------------------------------*\
| This device does not support resizing zones |
\*---------------------------------------------------------*/
}
for (unsigned int i = 0; i < corsair->GetLEDCount(); i++)
void RGBController_CorsairPro::UpdateLEDs()
{
for (std::size_t led = 0; led < colors.size(); led++)
{
zone_row.push_back(i);
RGBColor color = colors[led];
unsigned char red = RGBGetRValue(color);
unsigned char grn = RGBGetGValue(color);
unsigned char blu = RGBGetBValue(color);
corsair->SetLEDColor(led, red, grn, blu);
}
new_zone.map.push_back(zone_row);
corsair->ApplyColors();
}
zones.push_back(new_zone);
void RGBController_CorsairPro::UpdateZoneLEDs(int zone)
{
UpdateLEDs();
}
void RGBController_CorsairPro::UpdateSingleLED(int led)
{
RGBColor color = colors[led];
unsigned char red = RGBGetRValue(color);
unsigned char grn = RGBGetGValue(color);
unsigned char blu = RGBGetBValue(color);
corsair->SetLEDColor(led, red, grn, blu);
corsair->ApplyColors();
}
void RGBController_CorsairPro::SetCustomMode()

@ -16,6 +16,11 @@ class RGBController_CorsairPro : public RGBController
{
public:
RGBController_CorsairPro(CorsairProController* corsair_ptr);
void SetupZones();
void ResizeZone(int zone, int new_size);
void UpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);

Loading…
Cancel
Save