Update RGBController API and GUI to handle resizable zones. All controllers except for CorsairNodePro have been disabled pending rework
This commit is contained in:
parent
736e624366
commit
62518b5163
11 changed files with 272 additions and 259 deletions
|
|
@ -80,6 +80,7 @@ void CorsairNodeProController::KeepaliveThread()
|
|||
}
|
||||
|
||||
void CorsairNodeProController::SetChannelEffect(unsigned char channel,
|
||||
unsigned char num_leds,
|
||||
unsigned char mode,
|
||||
unsigned char speed,
|
||||
unsigned char direction,
|
||||
|
|
@ -117,7 +118,7 @@ void CorsairNodeProController::SetChannelEffect(unsigned char channel,
|
|||
(
|
||||
channel,
|
||||
0,
|
||||
CORSAIR_CMDR_PRO_LED_TYPE_LED_STRIP,
|
||||
num_leds,
|
||||
mode,
|
||||
speed,
|
||||
direction,
|
||||
|
|
@ -142,7 +143,7 @@ void CorsairNodeProController::SetChannelEffect(unsigned char channel,
|
|||
SendCommit();
|
||||
}
|
||||
|
||||
void CorsairNodeProController::SetChannelLEDs(unsigned char channel, std::vector<RGBColor> colors)
|
||||
void CorsairNodeProController::SetChannelLEDs(unsigned char channel, RGBColor * colors, unsigned int num_colors)
|
||||
{
|
||||
unsigned char color_data[50];
|
||||
unsigned char pkt_max;
|
||||
|
|
@ -157,9 +158,9 @@ void CorsairNodeProController::SetChannelLEDs(unsigned char channel, std::vector
|
|||
\*-----------------------------------------------------*/
|
||||
pkt_max = 50;
|
||||
|
||||
if(pkt_max > colors.size())
|
||||
if(pkt_max > num_colors)
|
||||
{
|
||||
pkt_max = (unsigned char)colors.size();
|
||||
pkt_max = (unsigned char)num_colors;
|
||||
}
|
||||
|
||||
for(int idx = 0; idx < pkt_max; idx++)
|
||||
|
|
@ -174,9 +175,9 @@ void CorsairNodeProController::SetChannelLEDs(unsigned char channel, std::vector
|
|||
\*-----------------------------------------------------*/
|
||||
pkt_max = 0;
|
||||
|
||||
if (colors.size() > 50)
|
||||
if (num_colors > 50)
|
||||
{
|
||||
pkt_max = (unsigned char)(colors.size() - 50);
|
||||
pkt_max = (unsigned char)(num_colors - 50);
|
||||
}
|
||||
|
||||
if(pkt_max > 0)
|
||||
|
|
@ -194,9 +195,9 @@ void CorsairNodeProController::SetChannelLEDs(unsigned char channel, std::vector
|
|||
\*-----------------------------------------------------*/
|
||||
pkt_max = 50;
|
||||
|
||||
if(pkt_max > colors.size())
|
||||
if(pkt_max > num_colors)
|
||||
{
|
||||
pkt_max = (unsigned char)colors.size();
|
||||
pkt_max = (unsigned char)num_colors;
|
||||
}
|
||||
|
||||
for(int idx = 0; idx < pkt_max; idx++)
|
||||
|
|
@ -211,9 +212,9 @@ void CorsairNodeProController::SetChannelLEDs(unsigned char channel, std::vector
|
|||
\*-----------------------------------------------------*/
|
||||
pkt_max = 0;
|
||||
|
||||
if (colors.size() > 50)
|
||||
if (num_colors > 50)
|
||||
{
|
||||
pkt_max = (unsigned char)(colors.size() - 50);
|
||||
pkt_max = (unsigned char)(num_colors - 50);
|
||||
}
|
||||
|
||||
if(pkt_max > 0)
|
||||
|
|
@ -231,9 +232,9 @@ void CorsairNodeProController::SetChannelLEDs(unsigned char channel, std::vector
|
|||
\*-----------------------------------------------------*/
|
||||
pkt_max = 50;
|
||||
|
||||
if(pkt_max > colors.size())
|
||||
if(pkt_max > num_colors)
|
||||
{
|
||||
pkt_max = (unsigned char)colors.size();
|
||||
pkt_max = (unsigned char)num_colors;
|
||||
}
|
||||
|
||||
for(int idx = 0; idx < pkt_max; idx++)
|
||||
|
|
@ -248,9 +249,9 @@ void CorsairNodeProController::SetChannelLEDs(unsigned char channel, std::vector
|
|||
\*-----------------------------------------------------*/
|
||||
pkt_max = 0;
|
||||
|
||||
if (colors.size() > 50)
|
||||
if (num_colors > 50)
|
||||
{
|
||||
pkt_max = (unsigned char)(colors.size() - 50);
|
||||
pkt_max = (unsigned char)(num_colors - 50);
|
||||
}
|
||||
|
||||
if(pkt_max > 0)
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ public:
|
|||
unsigned int GetStripsOnChannel(unsigned int channel);
|
||||
|
||||
void SetChannelEffect(unsigned char channel,
|
||||
unsigned char num_leds,
|
||||
unsigned char mode,
|
||||
unsigned char speed,
|
||||
unsigned char direction,
|
||||
|
|
@ -105,7 +106,7 @@ public:
|
|||
unsigned char blu3
|
||||
);
|
||||
|
||||
void SetChannelLEDs(unsigned char channel, std::vector<RGBColor> colors);
|
||||
void SetChannelLEDs(unsigned char channel, RGBColor * colors, unsigned int num_colors);
|
||||
unsigned int channel_leds[CORSAIR_NODE_PRO_NUM_CHANNELS];
|
||||
|
||||
void KeepaliveThread();
|
||||
|
|
|
|||
50
OpenRGB.cpp
50
OpenRGB.cpp
|
|
@ -313,42 +313,42 @@ void DetectRGBFusion2Controllers(std::vector<RGBController*> &rgb_controllers);
|
|||
#include "RGBController_Dummy.h"
|
||||
void DetectRGBControllers(void)
|
||||
{
|
||||
DetectI2CBusses();
|
||||
//DetectI2CBusses();
|
||||
|
||||
DetectAuraControllers(busses, rgb_controllers);
|
||||
DetectAuraGPUControllers(busses, rgb_controllers);
|
||||
DetectCorsairControllers(busses, rgb_controllers);
|
||||
DetectCorsairProControllers(busses, rgb_controllers);
|
||||
DetectCrucialControllers(busses, rgb_controllers);
|
||||
DetectHyperXControllers(busses, rgb_controllers);
|
||||
DetectPatriotViperControllers(busses, rgb_controllers);
|
||||
DetectPolychromeControllers(busses, rgb_controllers);
|
||||
DetectRGBFusionGPUControllers(busses, rgb_controllers);
|
||||
//DetectAuraControllers(busses, rgb_controllers);
|
||||
//DetectAuraGPUControllers(busses, rgb_controllers);
|
||||
//DetectCorsairControllers(busses, rgb_controllers);
|
||||
//DetectCorsairProControllers(busses, rgb_controllers);
|
||||
//DetectCrucialControllers(busses, rgb_controllers);
|
||||
//DetectHyperXControllers(busses, rgb_controllers);
|
||||
//DetectPatriotViperControllers(busses, rgb_controllers);
|
||||
//DetectPolychromeControllers(busses, rgb_controllers);
|
||||
//DetectRGBFusionGPUControllers(busses, rgb_controllers);
|
||||
|
||||
DetectRGBFusionControllers(busses, rgb_controllers);
|
||||
DetectMSIRGBControllers(rgb_controllers);
|
||||
//DetectRGBFusionControllers(busses, rgb_controllers);
|
||||
//DetectMSIRGBControllers(rgb_controllers);
|
||||
|
||||
DetectLEDStripControllers(rgb_controllers);
|
||||
DetectHue2Controllers(rgb_controllers);
|
||||
DetectHuePlusControllers(rgb_controllers);
|
||||
//DetectLEDStripControllers(rgb_controllers);
|
||||
//DetectHue2Controllers(rgb_controllers);
|
||||
//DetectHuePlusControllers(rgb_controllers);
|
||||
|
||||
DetectAMDWraithPrismControllers(rgb_controllers);
|
||||
DetectMSI3ZoneControllers(rgb_controllers);
|
||||
DetectPoseidonZRGBControllers(rgb_controllers);
|
||||
DetectHyperXKeyboardControllers(rgb_controllers);
|
||||
DetectCorsairCmdrProControllers(rgb_controllers);
|
||||
DetectCorsairKeyboardControllers(rgb_controllers);
|
||||
//DetectAMDWraithPrismControllers(rgb_controllers);
|
||||
//DetectMSI3ZoneControllers(rgb_controllers);
|
||||
//DetectPoseidonZRGBControllers(rgb_controllers);
|
||||
//DetectHyperXKeyboardControllers(rgb_controllers);
|
||||
//DetectCorsairCmdrProControllers(rgb_controllers);
|
||||
//DetectCorsairKeyboardControllers(rgb_controllers);
|
||||
DetectCorsairNodeProControllers(rgb_controllers);
|
||||
DetectThermaltakeRiingControllers(rgb_controllers);
|
||||
DetectRGBFusion2Controllers(rgb_controllers);
|
||||
//DetectThermaltakeRiingControllers(rgb_controllers);
|
||||
//DetectRGBFusion2Controllers(rgb_controllers);
|
||||
|
||||
DetectE131Controllers(rgb_controllers);
|
||||
//DetectE131Controllers(rgb_controllers);
|
||||
|
||||
/*-------------------------------------*\
|
||||
| Windows-only devices |
|
||||
\*-------------------------------------*/
|
||||
#ifdef WIN32
|
||||
DetectOpenRazerControllers(rgb_controllers);
|
||||
//DetectOpenRazerControllers(rgb_controllers);
|
||||
/*-------------------------------------*\
|
||||
| Linux-only devices |
|
||||
\*-------------------------------------*/
|
||||
|
|
|
|||
184
OpenRGB.pro
184
OpenRGB.pro
|
|
@ -29,29 +29,29 @@ INCLUDEPATH += \
|
|||
net_port/ \
|
||||
serial_port/ \
|
||||
super_io/ \
|
||||
Controllers/AMDWraithPrismController/ \
|
||||
Controllers/AuraController/ \
|
||||
Controllers/AuraGPUController/ \
|
||||
Controllers/CorsairController/ \
|
||||
Controllers/CorsairCmdrProController/ \
|
||||
Controllers/CorsairKeyboardController/ \
|
||||
# Controllers/AMDWraithPrismController/ \
|
||||
# Controllers/AuraController/ \
|
||||
# Controllers/AuraGPUController/ \
|
||||
# Controllers/CorsairController/ \
|
||||
# Controllers/CorsairCmdrProController/ \
|
||||
# Controllers/CorsairKeyboardController/ \
|
||||
Controllers/CorsairNodeProController/ \
|
||||
Controllers/CorsairProController/ \
|
||||
Controllers/CrucialController/ \
|
||||
Controllers/Hue2Controller/ \
|
||||
Controllers/HuePlusController/ \
|
||||
Controllers/HyperXController/ \
|
||||
Controllers/HyperXKeyboardController/ \
|
||||
Controllers/LEDStripController/ \
|
||||
Controllers/MSI3ZoneController/ \
|
||||
Controllers/MSIRGBController/ \
|
||||
Controllers/PatriotViperController/ \
|
||||
Controllers/PolychromeController/ \
|
||||
Controllers/PoseidonZRGBController/ \
|
||||
Controllers/RGBFusionController/ \
|
||||
Controllers/RGBFusion2Controller/ \
|
||||
Controllers/RGBFusionGPUController/ \
|
||||
Controllers/ThermaltakeRiingController/ \
|
||||
# Controllers/CorsairProController/ \
|
||||
# Controllers/CrucialController/ \
|
||||
# Controllers/Hue2Controller/ \
|
||||
# Controllers/HuePlusController/ \
|
||||
# Controllers/HyperXController/ \
|
||||
# Controllers/HyperXKeyboardController/ \
|
||||
# Controllers/LEDStripController/ \
|
||||
# Controllers/MSI3ZoneController/ \
|
||||
# Controllers/MSIRGBController/ \
|
||||
# Controllers/PatriotViperController/ \
|
||||
# Controllers/PolychromeController/ \
|
||||
# Controllers/PoseidonZRGBController/ \
|
||||
# Controllers/RGBFusionController/ \
|
||||
# Controllers/RGBFusion2Controller/ \
|
||||
# Controllers/RGBFusionGPUController/ \
|
||||
# Controllers/ThermaltakeRiingController/ \
|
||||
RGBController/ \
|
||||
qt/
|
||||
|
||||
|
|
@ -76,79 +76,79 @@ SOURCES += \
|
|||
qt/hsv.cpp \
|
||||
serial_port/serial_port.cpp \
|
||||
super_io/super_io.cpp \
|
||||
Controllers/AMDWraithPrismController/AMDWraithPrismController.cpp \
|
||||
Controllers/AMDWraithPrismController/AMDWraithPrismControllerDetect.cpp \
|
||||
Controllers/AuraController/AuraController.cpp \
|
||||
Controllers/AuraController/AuraControllerDetect.cpp \
|
||||
Controllers/AuraGPUController/AuraGPUController.cpp \
|
||||
Controllers/AuraGPUController/AuraGPUControllerDetect.cpp \
|
||||
Controllers/CorsairController/CorsairController.cpp \
|
||||
Controllers/CorsairController/CorsairControllerDetect.cpp \
|
||||
Controllers/CorsairCmdrProController/CorsairCmdrProController.cpp \
|
||||
Controllers/CorsairCmdrProController/CorsairCmdrProControllerDetect.cpp \
|
||||
Controllers/CorsairKeyboardController/CorsairKeyboardController.cpp \
|
||||
Controllers/CorsairKeyboardController/CorsairKeyboardControllerDetect.cpp \
|
||||
# Controllers/AMDWraithPrismController/AMDWraithPrismController.cpp \
|
||||
# Controllers/AMDWraithPrismController/AMDWraithPrismControllerDetect.cpp \
|
||||
# Controllers/AuraController/AuraController.cpp \
|
||||
# Controllers/AuraController/AuraControllerDetect.cpp \
|
||||
# Controllers/AuraGPUController/AuraGPUController.cpp \
|
||||
# Controllers/AuraGPUController/AuraGPUControllerDetect.cpp \
|
||||
# Controllers/CorsairController/CorsairController.cpp \
|
||||
# Controllers/CorsairController/CorsairControllerDetect.cpp \
|
||||
# Controllers/CorsairCmdrProController/CorsairCmdrProController.cpp \
|
||||
# Controllers/CorsairCmdrProController/CorsairCmdrProControllerDetect.cpp \
|
||||
# Controllers/CorsairKeyboardController/CorsairKeyboardController.cpp \
|
||||
# Controllers/CorsairKeyboardController/CorsairKeyboardControllerDetect.cpp \
|
||||
Controllers/CorsairNodeProController/CorsairNodeProController.cpp \
|
||||
Controllers/CorsairNodeProController/CorsairNodeProControllerDetect.cpp \
|
||||
Controllers/CorsairProController/CorsairProController.cpp \
|
||||
Controllers/CorsairProController/CorsairProControllerDetect.cpp \
|
||||
Controllers/CrucialController/CrucialController.cpp \
|
||||
Controllers/CrucialController/CrucialControllerDetect.cpp \
|
||||
Controllers/Hue2Controller/Hue2Controller.cpp \
|
||||
Controllers/Hue2Controller/Hue2ControllerDetect.cpp \
|
||||
Controllers/HuePlusController/HuePlusController.cpp \
|
||||
Controllers/HuePlusController/HuePlusControllerDetect.cpp \
|
||||
Controllers/HyperXController/HyperXController.cpp \
|
||||
Controllers/HyperXController/HyperXControllerDetect.cpp \
|
||||
Controllers/HyperXKeyboardController/HyperXKeyboardController.cpp \
|
||||
Controllers/HyperXKeyboardController/HyperXKeyboardControllerDetect.cpp \
|
||||
Controllers/LEDStripController/LEDStripController.cpp \
|
||||
Controllers/LEDStripController/LEDStripControllerDetect.cpp \
|
||||
Controllers/MSI3ZoneController/MSI3ZoneController.cpp \
|
||||
Controllers/MSI3ZoneController/MSI3ZoneControllerDetect.cpp \
|
||||
Controllers/MSIRGBController/MSIRGBController.cpp \
|
||||
Controllers/MSIRGBController/MSIRGBControllerDetect.cpp \
|
||||
Controllers/PatriotViperController/PatriotViperController.cpp \
|
||||
Controllers/PatriotViperController/PatriotViperControllerDetect.cpp \
|
||||
Controllers/PolychromeController/PolychromeController.cpp \
|
||||
Controllers/PolychromeController/PolychromeControllerDetect.cpp \
|
||||
Controllers/PoseidonZRGBController/PoseidonZRGBController.cpp \
|
||||
Controllers/PoseidonZRGBController/PoseidonZRGBControllerDetect.cpp \
|
||||
Controllers/RGBFusionController/RGBFusionController.cpp \
|
||||
Controllers/RGBFusionController/RGBFusionControllerDetect.cpp \
|
||||
Controllers/RGBFusion2Controller/RGBFusion2Controller.cpp \
|
||||
Controllers/RGBFusion2Controller/RGBFusion2ControllerDetect.cpp \
|
||||
Controllers/RGBFusionGPUController/RGBFusionGPUController.cpp \
|
||||
Controllers/RGBFusionGPUController/RGBFusionGPUControllerDetect.cpp \
|
||||
Controllers/ThermaltakeRiingController/ThermaltakeRiingController.cpp \
|
||||
Controllers/ThermaltakeRiingController/ThermaltakeRiingControllerDetect.cpp \
|
||||
# Controllers/CorsairProController/CorsairProController.cpp \
|
||||
# Controllers/CorsairProController/CorsairProControllerDetect.cpp \
|
||||
# Controllers/CrucialController/CrucialController.cpp \
|
||||
# Controllers/CrucialController/CrucialControllerDetect.cpp \
|
||||
# Controllers/Hue2Controller/Hue2Controller.cpp \
|
||||
# Controllers/Hue2Controller/Hue2ControllerDetect.cpp \
|
||||
# Controllers/HuePlusController/HuePlusController.cpp \
|
||||
# Controllers/HuePlusController/HuePlusControllerDetect.cpp \
|
||||
# Controllers/HyperXController/HyperXController.cpp \
|
||||
# Controllers/HyperXController/HyperXControllerDetect.cpp \
|
||||
# Controllers/HyperXKeyboardController/HyperXKeyboardController.cpp \
|
||||
# Controllers/HyperXKeyboardController/HyperXKeyboardControllerDetect.cpp \
|
||||
# Controllers/LEDStripController/LEDStripController.cpp \
|
||||
# Controllers/LEDStripController/LEDStripControllerDetect.cpp \
|
||||
# Controllers/MSI3ZoneController/MSI3ZoneController.cpp \
|
||||
# Controllers/MSI3ZoneController/MSI3ZoneControllerDetect.cpp \
|
||||
# Controllers/MSIRGBController/MSIRGBController.cpp \
|
||||
# Controllers/MSIRGBController/MSIRGBControllerDetect.cpp \
|
||||
# Controllers/PatriotViperController/PatriotViperController.cpp \
|
||||
# Controllers/PatriotViperController/PatriotViperControllerDetect.cpp \
|
||||
# Controllers/PolychromeController/PolychromeController.cpp \
|
||||
# Controllers/PolychromeController/PolychromeControllerDetect.cpp \
|
||||
# Controllers/PoseidonZRGBController/PoseidonZRGBController.cpp \
|
||||
# Controllers/PoseidonZRGBController/PoseidonZRGBControllerDetect.cpp \
|
||||
# Controllers/RGBFusionController/RGBFusionController.cpp \
|
||||
# Controllers/RGBFusionController/RGBFusionControllerDetect.cpp \
|
||||
# Controllers/RGBFusion2Controller/RGBFusion2Controller.cpp \
|
||||
# Controllers/RGBFusion2Controller/RGBFusion2ControllerDetect.cpp \
|
||||
# Controllers/RGBFusionGPUController/RGBFusionGPUController.cpp \
|
||||
# Controllers/RGBFusionGPUController/RGBFusionGPUControllerDetect.cpp \
|
||||
# Controllers/ThermaltakeRiingController/ThermaltakeRiingController.cpp \
|
||||
# Controllers/ThermaltakeRiingController/ThermaltakeRiingControllerDetect.cpp \
|
||||
RGBController/RGBController.cpp \
|
||||
RGBController/E131ControllerDetect.cpp \
|
||||
RGBController/RGBController_AMDWraithPrism.cpp \
|
||||
RGBController/RGBController_Aura.cpp \
|
||||
RGBController/RGBController_AuraGPU.cpp \
|
||||
RGBController/RGBController_Corsair.cpp \
|
||||
RGBController/RGBController_CorsairCmdrPro.cpp \
|
||||
RGBController/RGBController_CorsairKeyboard.cpp \
|
||||
# RGBController/E131ControllerDetect.cpp \
|
||||
# RGBController/RGBController_AMDWraithPrism.cpp \
|
||||
# RGBController/RGBController_Aura.cpp \
|
||||
# RGBController/RGBController_AuraGPU.cpp \
|
||||
# RGBController/RGBController_Corsair.cpp \
|
||||
# RGBController/RGBController_CorsairCmdrPro.cpp \
|
||||
# RGBController/RGBController_CorsairKeyboard.cpp \
|
||||
RGBController/RGBController_CorsairNodePro.cpp \
|
||||
RGBController/RGBController_CorsairPro.cpp \
|
||||
RGBController/RGBController_Crucial.cpp \
|
||||
# RGBController/RGBController_CorsairPro.cpp \
|
||||
# RGBController/RGBController_Crucial.cpp \
|
||||
RGBController/RGBController_Dummy.cpp \
|
||||
RGBController/RGBController_Hue2.cpp \
|
||||
RGBController/RGBController_HuePlus.cpp \
|
||||
RGBController/RGBController_HyperX.cpp \
|
||||
RGBController/RGBController_HyperXKeyboard.cpp \
|
||||
RGBController/RGBController_E131.cpp \
|
||||
RGBController/RGBController_LEDStrip.cpp \
|
||||
RGBController/RGBController_MSI3Zone.cpp \
|
||||
RGBController/RGBController_MSIRGB.cpp \
|
||||
RGBController/RGBController_PatriotViper.cpp \
|
||||
RGBController/RGBController_Polychrome.cpp \
|
||||
RGBController/RGBController_PoseidonZRGB.cpp \
|
||||
RGBController/RGBController_RGBFusion.cpp \
|
||||
RGBController/RGBController_RGBFusion2.cpp \
|
||||
RGBController/RGBController_RGBFusionGPU.cpp \
|
||||
RGBController/RGBController_ThermaltakeRiing.cpp \
|
||||
# RGBController/RGBController_Hue2.cpp \
|
||||
# RGBController/RGBController_HuePlus.cpp \
|
||||
# RGBController/RGBController_HyperX.cpp \
|
||||
# RGBController/RGBController_HyperXKeyboard.cpp \
|
||||
# RGBController/RGBController_E131.cpp \
|
||||
# RGBController/RGBController_LEDStrip.cpp \
|
||||
# RGBController/RGBController_MSI3Zone.cpp \
|
||||
# RGBController/RGBController_MSIRGB.cpp \
|
||||
# RGBController/RGBController_PatriotViper.cpp \
|
||||
# RGBController/RGBController_Polychrome.cpp \
|
||||
# RGBController/RGBController_PoseidonZRGB.cpp \
|
||||
# RGBController/RGBController_RGBFusion.cpp \
|
||||
# RGBController/RGBController_RGBFusion2.cpp \
|
||||
# RGBController/RGBController_RGBFusionGPU.cpp \
|
||||
# RGBController/RGBController_ThermaltakeRiing.cpp \
|
||||
|
||||
HEADERS += \
|
||||
ProfileManager.h \
|
||||
|
|
@ -246,8 +246,8 @@ win32:SOURCES += \
|
|||
i2c_smbus/i2c_smbus_piix4.cpp \
|
||||
serial_port/find_usb_serial_port_win.cpp \
|
||||
wmi/wmi.cpp \
|
||||
RGBController/OpenRazerWindowsDetect.cpp \
|
||||
RGBController/RGBController_OpenRazerWindows.cpp \
|
||||
# RGBController/OpenRazerWindowsDetect.cpp \
|
||||
# RGBController/RGBController_OpenRazerWindows.cpp \
|
||||
|
||||
win32:HEADERS += \
|
||||
dependencies/inpout32_1501/Win32/inpout32.h \
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
unsigned char * RGBController::GetDeviceDescription()
|
||||
{
|
||||
#if 0
|
||||
unsigned int data_ptr = 0;
|
||||
unsigned int data_size = 0;
|
||||
|
||||
|
|
@ -359,10 +360,13 @@ unsigned char * RGBController::GetDeviceDescription()
|
|||
delete[] zone_map_rows;
|
||||
|
||||
return(data_buf);
|
||||
#endif
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
void RGBController::ReadDeviceDescription(unsigned char* data_buf)
|
||||
{
|
||||
#if 0
|
||||
unsigned int data_ptr = 0;
|
||||
|
||||
data_ptr += sizeof(unsigned int);
|
||||
|
|
@ -654,6 +658,40 @@ void RGBController::ReadDeviceDescription(unsigned char* data_buf)
|
|||
|
||||
colors.push_back(new_color);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void RGBController::SetupColors()
|
||||
{
|
||||
unsigned int total_led_count;
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Determine total number of LEDs on the device |
|
||||
\*---------------------------------------------------------*/
|
||||
total_led_count = 0;
|
||||
|
||||
for(int zone_idx = 0; zone_idx < zones.size(); zone_idx++)
|
||||
{
|
||||
total_led_count += zones[zone_idx].leds_count;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Set the size of the color buffer to the number of LEDs |
|
||||
\*---------------------------------------------------------*/
|
||||
colors.resize(total_led_count);
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Set the color buffer pointers on each zone |
|
||||
\*---------------------------------------------------------*/
|
||||
total_led_count = 0;
|
||||
|
||||
for(int zone_idx = 0; zone_idx < zones.size(); zone_idx++)
|
||||
{
|
||||
zones[zone_idx].colors = &colors[total_led_count];
|
||||
zones[zone_idx].leds = &leds[total_led_count];
|
||||
|
||||
total_led_count += zones[zone_idx].leds_count;
|
||||
}
|
||||
}
|
||||
|
||||
RGBColor RGBController::GetLED(int led)
|
||||
|
|
@ -680,9 +718,9 @@ void RGBController::SetLED(int led, RGBColor color)
|
|||
|
||||
void RGBController::SetAllLEDs(RGBColor color)
|
||||
{
|
||||
for(int led = 0; led < colors.size(); led++)
|
||||
for(int zone_idx = 0; zone_idx < zones.size(); zone_idx++)
|
||||
{
|
||||
colors[led] = color;
|
||||
SetAllZoneLEDs(zone_idx, color);
|
||||
}
|
||||
|
||||
UpdateLEDs();
|
||||
|
|
@ -690,12 +728,9 @@ void RGBController::SetAllLEDs(RGBColor color)
|
|||
|
||||
void RGBController::SetAllZoneLEDs(int zone, RGBColor color)
|
||||
{
|
||||
for (std::size_t x = 0; x < zones[zone].map.size(); x++)
|
||||
for (std::size_t color_idx = 0; color_idx < zones[zone].leds_count; color_idx++)
|
||||
{
|
||||
for (std::size_t y = 0; y < zones[zone].map[x].size(); y++)
|
||||
{
|
||||
colors[zones[zone].map[x][y]] = color;
|
||||
}
|
||||
zones[zone].colors[color_idx] = color;
|
||||
}
|
||||
|
||||
UpdateZoneLEDs(zone);
|
||||
|
|
|
|||
|
|
@ -116,12 +116,13 @@ std::string device_type_to_str(device_type type);
|
|||
|
||||
typedef struct
|
||||
{
|
||||
std::string name; /* Zone name */
|
||||
zone_type type; /* Zone type */
|
||||
std::vector<std::vector<int>>
|
||||
map; /* LED index map */
|
||||
unsigned int leds_min;
|
||||
unsigned int leds_max;
|
||||
std::string name; /* Zone name */
|
||||
zone_type type; /* Zone type */
|
||||
led * leds; /* List of LEDs in zone */
|
||||
RGBColor * colors; /* Colors of LEDs in zone */
|
||||
unsigned int leds_count; /* Number of LEDs in zone */
|
||||
unsigned int leds_min; /* Minimum number of LEDs */
|
||||
unsigned int leds_max; /* Maximum number of LEDs */
|
||||
} zone;
|
||||
|
||||
class RGBController
|
||||
|
|
@ -144,6 +145,8 @@ public:
|
|||
/*---------------------------------------------------------*\
|
||||
| Generic functions implemented in RGBController.cpp |
|
||||
\*---------------------------------------------------------*/
|
||||
void SetupColors();
|
||||
|
||||
RGBColor GetLED(int led);
|
||||
void SetLED(int led, RGBColor color);
|
||||
void SetAllLEDs(RGBColor color);
|
||||
|
|
@ -158,6 +161,10 @@ public:
|
|||
/*---------------------------------------------------------*\
|
||||
| Functions to be implemented in device implementation |
|
||||
\*---------------------------------------------------------*/
|
||||
virtual void SetupZones() = 0;
|
||||
|
||||
virtual void ResizeZone(int zone, int new_size) = 0;
|
||||
|
||||
virtual void UpdateLEDs() = 0;
|
||||
virtual void UpdateZoneLEDs(int zone) = 0;
|
||||
virtual void UpdateSingleLED(int led) = 0;
|
||||
|
|
|
|||
|
|
@ -159,21 +159,21 @@ RGBController_CorsairNodePro::RGBController_CorsairNodePro(CorsairNodeProControl
|
|||
Rainbow.speed = CORSAIR_CMDR_PRO_SPEED_MEDIUM;
|
||||
Rainbow.color_mode = MODE_COLORS_NONE;
|
||||
modes.push_back(Rainbow);
|
||||
|
||||
|
||||
SetupZones();
|
||||
}
|
||||
|
||||
void RGBController_CorsairNodePro::SetupZones()
|
||||
{
|
||||
/*-------------------------------------------------*\
|
||||
| Set size of colors array |
|
||||
| Clear any existing zone/LED configuration |
|
||||
\*-------------------------------------------------*/
|
||||
unsigned int led_count = 0;
|
||||
for (unsigned int channel_idx = 0; channel_idx < CORSAIR_NODE_PRO_NUM_CHANNELS; channel_idx++)
|
||||
{
|
||||
led_count += corsair->channel_leds[channel_idx];
|
||||
}
|
||||
colors.resize(led_count);
|
||||
leds.clear();
|
||||
zones.clear();
|
||||
|
||||
/*-------------------------------------------------*\
|
||||
| Set zones and leds |
|
||||
\*-------------------------------------------------*/
|
||||
unsigned int led_idx = 0;
|
||||
for (unsigned int channel_idx = 0; channel_idx < CORSAIR_NODE_PRO_NUM_CHANNELS; channel_idx++)
|
||||
{
|
||||
if(corsair->channel_leds[channel_idx] > 0)
|
||||
|
|
@ -186,10 +186,10 @@ RGBController_CorsairNodePro::RGBController_CorsairNodePro(CorsairNodeProControl
|
|||
new_zone->name = "Corsair Channel ";
|
||||
new_zone->name.append(ch_idx_string);
|
||||
new_zone->type = ZONE_TYPE_LINEAR;
|
||||
new_zone->leds_min = 0;
|
||||
new_zone->leds_max = 40;
|
||||
|
||||
std::vector<int> *new_zone_map = new std::vector<int>();
|
||||
new_zone->leds_min = 0;
|
||||
new_zone->leds_max = 60;
|
||||
new_zone->leds_count = corsair->channel_leds[channel_idx];
|
||||
|
||||
for (unsigned int led_ch_idx = 0; led_ch_idx < corsair->channel_leds[channel_idx]; led_ch_idx++)
|
||||
{
|
||||
|
|
@ -204,79 +204,40 @@ RGBController_CorsairNodePro::RGBController_CorsairNodePro(CorsairNodeProControl
|
|||
|
||||
leds.push_back(new_led);
|
||||
leds_channel.push_back(channel_idx);
|
||||
|
||||
new_zone_map->push_back(led_idx);
|
||||
led_idx++;
|
||||
}
|
||||
|
||||
new_zone->map.push_back(*new_zone_map);
|
||||
zones.push_back(*new_zone);
|
||||
zones_channel.push_back(channel_idx);
|
||||
}
|
||||
}
|
||||
|
||||
SetupColors();
|
||||
}
|
||||
|
||||
void RGBController_CorsairNodePro::ResizeZone(int zone, int new_size)
|
||||
{
|
||||
corsair->channel_leds[zone] = new_size;
|
||||
|
||||
SetupZones();
|
||||
}
|
||||
|
||||
void RGBController_CorsairNodePro::UpdateLEDs()
|
||||
{
|
||||
for(std::size_t zone_idx = 0; zone_idx < zones.size(); zone_idx++)
|
||||
{
|
||||
unsigned int channel = zones_channel[zone_idx];
|
||||
|
||||
std::vector<RGBColor> channel_colors;
|
||||
|
||||
for(std::size_t color = 0; color < colors.size(); color++)
|
||||
{
|
||||
if(leds_channel[color] == channel)
|
||||
{
|
||||
channel_colors.push_back(colors[color]);
|
||||
}
|
||||
}
|
||||
|
||||
if(channel_colors.size() > 0)
|
||||
{
|
||||
corsair->SetChannelLEDs(channel, channel_colors);
|
||||
}
|
||||
corsair->SetChannelLEDs(zone_idx, zones[zone_idx].colors, zones[zone_idx].leds_count);
|
||||
}
|
||||
}
|
||||
|
||||
void RGBController_CorsairNodePro::UpdateZoneLEDs(int zone)
|
||||
{
|
||||
unsigned int channel = zones_channel[zone];
|
||||
|
||||
std::vector<RGBColor> channel_colors;
|
||||
|
||||
for(std::size_t color = 0; color < colors.size(); color++)
|
||||
{
|
||||
if(leds_channel[color] == channel)
|
||||
{
|
||||
channel_colors.push_back(colors[color]);
|
||||
}
|
||||
}
|
||||
|
||||
if(channel_colors.size() > 0)
|
||||
{
|
||||
corsair->SetChannelLEDs(channel, channel_colors);
|
||||
}
|
||||
corsair->SetChannelLEDs(zone, zones[zone].colors, zones[zone].leds_count);
|
||||
}
|
||||
|
||||
void RGBController_CorsairNodePro::UpdateSingleLED(int led)
|
||||
{
|
||||
unsigned int channel = leds_channel[led];
|
||||
|
||||
std::vector<RGBColor> channel_colors;
|
||||
|
||||
for(std::size_t color = 0; color < colors.size(); color++)
|
||||
{
|
||||
if(leds_channel[color] == channel)
|
||||
{
|
||||
channel_colors.push_back(colors[color]);
|
||||
}
|
||||
}
|
||||
|
||||
if(channel_colors.size() > 0)
|
||||
{
|
||||
corsair->SetChannelLEDs(channel, channel_colors);
|
||||
}
|
||||
corsair->SetChannelLEDs(channel, zones[channel].colors, zones[channel].leds_count);
|
||||
}
|
||||
|
||||
void RGBController_CorsairNodePro::SetCustomMode()
|
||||
|
|
@ -315,6 +276,7 @@ void RGBController_CorsairNodePro::UpdateMode()
|
|||
}
|
||||
|
||||
corsair->SetChannelEffect(channel,
|
||||
zones[channel].leds_count,
|
||||
modes[active_mode].value,
|
||||
modes[active_mode].speed,
|
||||
direction,
|
||||
|
|
|
|||
|
|
@ -15,6 +15,11 @@ class RGBController_CorsairNodePro : public RGBController
|
|||
{
|
||||
public:
|
||||
RGBController_CorsairNodePro(CorsairNodeProController* corsair_ptr);
|
||||
|
||||
void SetupZones();
|
||||
|
||||
void ResizeZone(int zone, int new_size);
|
||||
|
||||
void UpdateLEDs();
|
||||
void UpdateZoneLEDs(int zone);
|
||||
void UpdateSingleLED(int led);
|
||||
|
|
|
|||
|
|
@ -13,6 +13,16 @@ RGBController_Dummy::RGBController_Dummy()
|
|||
|
||||
}
|
||||
|
||||
void RGBController_Dummy::SetupZones()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void RGBController_Dummy::ResizeZone(int zone, int new_size)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void RGBController_Dummy::UpdateLEDs()
|
||||
{
|
||||
|
||||
|
|
@ -36,4 +46,4 @@ void RGBController_Dummy::SetCustomMode()
|
|||
void RGBController_Dummy::UpdateMode()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,10 +14,15 @@ class RGBController_Dummy : public RGBController
|
|||
{
|
||||
public:
|
||||
RGBController_Dummy();
|
||||
|
||||
void SetupZones();
|
||||
|
||||
void ResizeZone(int zone, int new_size);
|
||||
|
||||
void UpdateLEDs();
|
||||
void UpdateZoneLEDs(int zone);
|
||||
void UpdateSingleLED(int led);
|
||||
|
||||
void SetCustomMode();
|
||||
void UpdateMode();
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -116,12 +116,9 @@ void Ui::OpenRGBDevicePage::on_ZoneBox_currentIndexChanged(int /*index*/)
|
|||
{
|
||||
selected_zone = selected_zone - 1;
|
||||
|
||||
for (std::size_t y = 0; y < device->zones[selected_zone].map.size(); y++)
|
||||
for (std::size_t led_idx = 0; led_idx < device->zones[selected_zone].leds_count; led_idx++)
|
||||
{
|
||||
for(std::size_t x = 0; x < device->zones[selected_zone].map[y].size(); x++)
|
||||
{
|
||||
ui->LEDBox->addItem(device->leds[device->zones[selected_zone].map[y][x]].name.c_str());
|
||||
}
|
||||
ui->LEDBox->addItem(device->zones[selected_zone].leds[led_idx].name.c_str());
|
||||
}
|
||||
|
||||
if(device->zones[selected_zone].leds_min == device->zones[selected_zone].leds_max)
|
||||
|
|
@ -155,33 +152,22 @@ void Ui::OpenRGBDevicePage::on_LEDBox_currentIndexChanged(int index)
|
|||
{
|
||||
unsigned int selected_zone = ui->ZoneBox->currentIndex();
|
||||
|
||||
if(selected_zone > 0)
|
||||
RGBColor color = 0x00000000;
|
||||
|
||||
if(selected_zone == 0)
|
||||
{
|
||||
color = device->GetLED(index);
|
||||
}
|
||||
else
|
||||
{
|
||||
selected_zone = selected_zone - 1;
|
||||
|
||||
unsigned int count = 0;
|
||||
|
||||
for (std::size_t y = 0; y < device->zones[selected_zone].map.size(); y++)
|
||||
{
|
||||
for(std::size_t x = 0; x < device->zones[selected_zone].map[y].size(); x++)
|
||||
{
|
||||
if(count == index)
|
||||
{
|
||||
index = device->zones[selected_zone].map[y][x];
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
color = device->zones[selected_zone].colors[index];
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Update color picker with color of selected LED |
|
||||
\*-----------------------------------------------------*/
|
||||
RGBColor color = device->GetLED(index);
|
||||
UpdatingColor = true;
|
||||
ui->RedSpinBox->setValue(RGBGetRValue(color));
|
||||
ui->GreenSpinBox->setValue(RGBGetGValue(color));
|
||||
|
|
@ -757,29 +743,6 @@ void Ui::OpenRGBDevicePage::on_SetLEDButton_clicked()
|
|||
{
|
||||
unsigned int selected_zone = ui->ZoneBox->currentIndex();
|
||||
|
||||
if(selected_zone > 0)
|
||||
{
|
||||
selected_zone = selected_zone - 1;
|
||||
|
||||
unsigned int count = 0;
|
||||
|
||||
for (std::size_t y = 0; y < device->zones[selected_zone].map.size(); y++)
|
||||
{
|
||||
for(std::size_t x = 0; x < device->zones[selected_zone].map[y].size(); x++)
|
||||
{
|
||||
if(count == index)
|
||||
{
|
||||
index = device->zones[selected_zone].map[y][x];
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Set the selected LED to the current color |
|
||||
\*-----------------------------------------------------*/
|
||||
|
|
@ -789,7 +752,16 @@ void Ui::OpenRGBDevicePage::on_SetLEDButton_clicked()
|
|||
ui->BlueSpinBox->text().toInt()
|
||||
);
|
||||
|
||||
device->SetLED(index, color);
|
||||
if(selected_zone == 0)
|
||||
{
|
||||
device->SetLED(index, color);
|
||||
}
|
||||
else
|
||||
{
|
||||
selected_zone = selected_zone - 1;
|
||||
|
||||
device->zones[selected_zone].colors[index] = color;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
@ -970,9 +942,24 @@ void Ui::OpenRGBDevicePage::on_ResizeButton_clicked()
|
|||
{
|
||||
OpenRGBZoneResizeDialog dlg(device->zones[selected_zone].leds_min,
|
||||
device->zones[selected_zone].leds_max,
|
||||
device->zones[selected_zone].map[0].size());
|
||||
device->zones[selected_zone].leds_count);
|
||||
|
||||
int new_size = dlg.show();
|
||||
|
||||
if(new_size >= 0)
|
||||
{
|
||||
device->ResizeZone(selected_zone, new_size);
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Update LED box |
|
||||
\*-----------------------------------------------------*/
|
||||
on_ZoneBox_currentIndexChanged(selected_zone);
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Update color picker with color of first LED |
|
||||
\*-----------------------------------------------------*/
|
||||
on_LEDBox_currentIndexChanged(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue