From f7cb8ca96953d24c38306e2bce595b85f80446a8 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Thu, 5 Mar 2020 22:26:29 -0600 Subject: [PATCH] Delete CorsairCmdrProController files now that Corsair Pro is merged into Lighting Node driver --- .../CorsairCmdrProController.cpp | 507 ------------------ .../CorsairCmdrProController.h | 166 ------ .../CorsairCmdrProControllerDetect.cpp | 37 -- OpenRGB.pro | 6 - .../RGBController_CorsairCmdrPro.cpp | 331 ------------ RGBController/RGBController_CorsairCmdrPro.h | 29 - 6 files changed, 1076 deletions(-) delete mode 100644 Controllers/CorsairCmdrProController/CorsairCmdrProController.cpp delete mode 100644 Controllers/CorsairCmdrProController/CorsairCmdrProController.h delete mode 100644 Controllers/CorsairCmdrProController/CorsairCmdrProControllerDetect.cpp delete mode 100644 RGBController/RGBController_CorsairCmdrPro.cpp delete mode 100644 RGBController/RGBController_CorsairCmdrPro.h diff --git a/Controllers/CorsairCmdrProController/CorsairCmdrProController.cpp b/Controllers/CorsairCmdrProController/CorsairCmdrProController.cpp deleted file mode 100644 index b3bdf53da..000000000 --- a/Controllers/CorsairCmdrProController/CorsairCmdrProController.cpp +++ /dev/null @@ -1,507 +0,0 @@ -/*---------------------------------------------------------*\ -| Processing Code for Corsair Commander Pro | -| | -| Adam Honse (calcprogrammer1@gmail.com), 1/16/2020 | -\*---------------------------------------------------------*/ - -#include "CorsairCmdrProController.h" - -#include -#include -#include -#include - -//Include thread libraries for Windows or Linux -#ifdef WIN32 -#include -#else -#include "pthread.h" -#include "unistd.h" -#endif - -//Thread functions have different types in Windows and Linux -#ifdef WIN32 -#define THREAD static void -#define THREADRETURN -#else -#define THREAD static void* -#define THREADRETURN return(NULL); -#endif - -#ifdef WIN32 -#include -#else -#include - -static void Sleep(unsigned int milliseconds) -{ - usleep(1000 * milliseconds); -} -#endif - -THREAD keepalive_thread(void *param) -{ - CorsairCmdrProController* corsair = static_cast(param); - corsair->KeepaliveThread(); - THREADRETURN -} - -CorsairCmdrProController::CorsairCmdrProController(libusb_device_handle* dev_handle) -{ - dev = dev_handle; - channel_leds[0] = 60; - channel_leds[1] = 60; - - /*-----------------------------------------------------*\ - | The Corsair Lighting Node Pro requires a packet within| - | 20 seconds of sending the lighting change in order | - | to not revert back into rainbow mode. Start a thread | - | to continuously send a keepalive packet every 5s | - \*-----------------------------------------------------*/ -#ifdef WIN32 - _beginthread(keepalive_thread, 0, this); -#else - pthread_t thread; - pthread_create(&thread, NULL, &keepalive_thread, this); -#endif -} - -CorsairCmdrProController::~CorsairCmdrProController() -{ -} - -void CorsairCmdrProController::KeepaliveThread() -{ - while(1) - { - SendCommit(); - Sleep(5000); - } -} - -void CorsairCmdrProController::SetChannelEffect(unsigned char channel, - unsigned char mode, - unsigned char speed, - unsigned char direction, - bool random, - unsigned char red1, - unsigned char grn1, - unsigned char blu1, - unsigned char red2, - unsigned char grn2, - unsigned char blu2, - unsigned char red3, - unsigned char grn3, - unsigned char blu3 - ) -{ - /*-----------------------------------------------------*\ - | Send Reset packet | - \*-----------------------------------------------------*/ - SendReset(channel); - - /*-----------------------------------------------------*\ - | Send Begin packet | - \*-----------------------------------------------------*/ - SendBegin(channel); - - /*-----------------------------------------------------*\ - | Set Port State packet | - \*-----------------------------------------------------*/ - SendPortState(channel, CORSAIR_CMDR_PRO_PORT_STATE_HARDWARE); - - /*-----------------------------------------------------*\ - | Set Effect Configuration packet | - \*-----------------------------------------------------*/ - SendEffectConfig - ( - channel, - 0, - CORSAIR_CMDR_PRO_LED_TYPE_LED_STRIP, - mode, - speed, - direction, - random, - red1, - grn1, - blu1, - red2, - grn2, - blu2, - red3, - grn3, - blu3, - 0, - 0, - 0 - ); - - /*-----------------------------------------------------*\ - | Send Commit packet | - \*-----------------------------------------------------*/ - SendCommit(); -} - -void CorsairCmdrProController::SetChannelLEDs(unsigned char channel, std::vector colors) -{ - unsigned char color_data[50]; - unsigned char pkt_max; - - /*-----------------------------------------------------*\ - | Send Port State packet | - \*-----------------------------------------------------*/ - SendPortState(channel, CORSAIR_CMDR_PRO_PORT_STATE_SOFTWARE); - - /*-----------------------------------------------------*\ - | Send red channel packet 1 | - \*-----------------------------------------------------*/ - pkt_max = 50; - - if(pkt_max > colors.size()) - { - pkt_max = (unsigned char)colors.size(); - } - - for(int idx = 0; idx < pkt_max; idx++) - { - color_data[idx] = RGBGetRValue(colors[idx]); - } - - SendDirect(channel, 0, pkt_max, CORSAIR_CMDR_PRO_DIRECT_CHANNEL_RED, color_data); - - /*-----------------------------------------------------*\ - | Send red channel packet 2 if necessary | - \*-----------------------------------------------------*/ - pkt_max = 0; - - if (colors.size() > 50) - { - pkt_max = (unsigned char)(colors.size() - 50); - } - - if(pkt_max > 0) - { - for (std::size_t idx = 0; idx < pkt_max; idx++) - { - color_data[idx] = RGBGetRValue(colors[idx+50]); - } - - SendDirect(channel, 50, pkt_max, CORSAIR_CMDR_PRO_DIRECT_CHANNEL_RED, color_data); - } - - /*-----------------------------------------------------*\ - | Send green channel packet 1 | - \*-----------------------------------------------------*/ - pkt_max = 50; - - if(pkt_max > colors.size()) - { - pkt_max = (unsigned char)colors.size(); - } - - for(int idx = 0; idx < pkt_max; idx++) - { - color_data[idx] = RGBGetGValue(colors[idx]); - } - - SendDirect(channel, 0, pkt_max, CORSAIR_CMDR_PRO_DIRECT_CHANNEL_GREEN, color_data); - - /*-----------------------------------------------------*\ - | Send green channel packet 2 if necessary | - \*-----------------------------------------------------*/ - pkt_max = 0; - - if (colors.size() > 50) - { - pkt_max = (unsigned char)(colors.size() - 50); - } - - if(pkt_max > 0) - { - for (std::size_t idx = 0; idx < pkt_max; idx++) - { - color_data[idx] = RGBGetGValue(colors[idx+50]); - } - - SendDirect(channel, 50, pkt_max, CORSAIR_CMDR_PRO_DIRECT_CHANNEL_GREEN, color_data); - } - - /*-----------------------------------------------------*\ - | Send blue channel packet 1 | - \*-----------------------------------------------------*/ - pkt_max = 50; - - if(pkt_max > colors.size()) - { - pkt_max = (unsigned char)colors.size(); - } - - for(int idx = 0; idx < pkt_max; idx++) - { - color_data[idx] = RGBGetBValue(colors[idx]); - } - - SendDirect(channel, 0, pkt_max, CORSAIR_CMDR_PRO_DIRECT_CHANNEL_BLUE, color_data); - - /*-----------------------------------------------------*\ - | Send blue channel packet 2 if necessary | - \*-----------------------------------------------------*/ - pkt_max = 0; - - if (colors.size() > 50) - { - pkt_max = (unsigned char)(colors.size() - 50); - } - - if(pkt_max > 0) - { - for (std::size_t idx = 0; idx < pkt_max; idx++) - { - color_data[idx] = RGBGetBValue(colors[idx+50]); - } - - SendDirect(channel, 50, pkt_max, CORSAIR_CMDR_PRO_DIRECT_CHANNEL_BLUE, color_data); - } - - /*-----------------------------------------------------*\ - | Send Commit packet | - \*-----------------------------------------------------*/ - SendCommit(); -} - -/*-------------------------------------------------------------------------------------------------*\ -| Private packet sending functions. | -\*-------------------------------------------------------------------------------------------------*/ - -void CorsairCmdrProController::SendDirect - ( - unsigned char channel, - unsigned char start, - unsigned char count, - unsigned char color_channel, - unsigned char* color_data - ) -{ - int actual; - unsigned char usb_buf[64]; - - /*-----------------------------------------------------*\ - | Zero out buffer | - \*-----------------------------------------------------*/ - memset(usb_buf, 0x00, sizeof(usb_buf)); - - /*-----------------------------------------------------*\ - | Set up Direct packet | - \*-----------------------------------------------------*/ - usb_buf[0x00] = CORSAIR_CMDR_PRO_PACKET_ID_DIRECT; - usb_buf[0x01] = channel; - usb_buf[0x02] = start; - usb_buf[0x03] = count; - usb_buf[0x04] = color_channel; - - /*-----------------------------------------------------*\ - | Copy in color data bytes | - \*-----------------------------------------------------*/ - memcpy(&usb_buf[0x05], color_data, count); - - /*-----------------------------------------------------*\ - | Send packet | - \*-----------------------------------------------------*/ - libusb_interrupt_transfer(dev, 0x02, usb_buf, 64, &actual, 0); -} - -void CorsairCmdrProController::SendCommit() -{ - int actual; - unsigned char usb_buf[64]; - - /*-----------------------------------------------------*\ - | Zero out buffer | - \*-----------------------------------------------------*/ - memset(usb_buf, 0x00, sizeof(usb_buf)); - - /*-----------------------------------------------------*\ - | Set up Commit packet | - \*-----------------------------------------------------*/ - usb_buf[0x00] = CORSAIR_CMDR_PRO_PACKET_ID_COMMIT; - usb_buf[0x01] = 0xFF; - - /*-----------------------------------------------------*\ - | Send packet | - \*-----------------------------------------------------*/ - libusb_interrupt_transfer(dev, 0x02, usb_buf, 64, &actual, 0); -} - -void CorsairCmdrProController::SendBegin - ( - unsigned char channel - ) -{ - int actual; - unsigned char usb_buf[64]; - - /*-----------------------------------------------------*\ - | Zero out buffer | - \*-----------------------------------------------------*/ - memset(usb_buf, 0x00, sizeof(usb_buf)); - - /*-----------------------------------------------------*\ - | Set up Begin packet | - \*-----------------------------------------------------*/ - usb_buf[0x00] = CORSAIR_CMDR_PRO_PACKET_ID_BEGIN; - usb_buf[0x01] = channel; - - /*-----------------------------------------------------*\ - | Send packet | - \*-----------------------------------------------------*/ - libusb_interrupt_transfer(dev, 0x02, usb_buf, 64, &actual, 0); -} - -void CorsairCmdrProController::SendEffectConfig - ( - unsigned char channel, - unsigned char count, - unsigned char led_type, - unsigned char mode, - unsigned char speed, - unsigned char direction, - unsigned char change_style, - unsigned char color_0_red, - unsigned char color_0_green, - unsigned char color_0_blue, - unsigned char color_1_red, - unsigned char color_1_green, - unsigned char color_1_blue, - unsigned char color_2_red, - unsigned char color_2_green, - unsigned char color_2_blue, - unsigned short temperature_0, - unsigned short temperature_1, - unsigned short temperature_2 - ) -{ - int actual; - unsigned char usb_buf[64]; - - /*-----------------------------------------------------*\ - | Zero out buffer | - \*-----------------------------------------------------*/ - memset(usb_buf, 0x00, sizeof(usb_buf)); - - /*-----------------------------------------------------*\ - | Set up Effect Config packet | - \*-----------------------------------------------------*/ - usb_buf[0x00] = CORSAIR_CMDR_PRO_PACKET_ID_EFFECT_CONFIG; - usb_buf[0x01] = channel; - usb_buf[0x02] = count * 10; - usb_buf[0x03] = led_type; - - /*-----------------------------------------------------*\ - | Set up mode parameters | - \*-----------------------------------------------------*/ - usb_buf[0x04] = mode; - usb_buf[0x05] = speed; - usb_buf[0x06] = direction; - usb_buf[0x07] = change_style; - usb_buf[0x08] = 0; - - /*-----------------------------------------------------*\ - | Set up mode colors | - \*-----------------------------------------------------*/ - usb_buf[0x09] = color_0_red; - usb_buf[0x10] = color_0_green; - usb_buf[0x11] = color_0_blue; - usb_buf[0x12] = color_1_red; - usb_buf[0x13] = color_1_green; - usb_buf[0x14] = color_1_blue; - usb_buf[0x15] = color_2_red; - usb_buf[0x16] = color_2_green; - usb_buf[0x17] = color_2_blue; - - /*-----------------------------------------------------*\ - | Set up temperatures | - \*-----------------------------------------------------*/ - usb_buf[0x12] = (temperature_0 >> 8); - usb_buf[0x13] = (temperature_0 & 0xFF); - usb_buf[0x14] = (temperature_1 >> 8); - usb_buf[0x15] = (temperature_1 & 0xFF); - usb_buf[0x16] = (temperature_2 >> 8); - usb_buf[0x17] = (temperature_2 & 0xFF); - - /*-----------------------------------------------------*\ - | Send packet | - \*-----------------------------------------------------*/ - libusb_interrupt_transfer(dev, 0x02, usb_buf, 64, &actual, 0); -} - -void CorsairCmdrProController::SendTemperature() -{ - -} - -void CorsairCmdrProController::SendReset - ( - unsigned char channel - ) -{ - int actual; - unsigned char usb_buf[64]; - - /*-----------------------------------------------------*\ - | Zero out buffer | - \*-----------------------------------------------------*/ - memset(usb_buf, 0x00, sizeof(usb_buf)); - - /*-----------------------------------------------------*\ - | Set up Reset packet | - \*-----------------------------------------------------*/ - usb_buf[0x00] = CORSAIR_CMDR_PRO_PACKET_ID_RESET; - usb_buf[0x01] = channel; - - /*-----------------------------------------------------*\ - | Send packet | - \*-----------------------------------------------------*/ - libusb_interrupt_transfer(dev, 0x02, usb_buf, 64, &actual, 0); -} - -void CorsairCmdrProController::SendPortState - ( - unsigned char channel, - unsigned char state - ) -{ - int actual; - unsigned char usb_buf[64]; - - /*-----------------------------------------------------*\ - | Zero out buffer | - \*-----------------------------------------------------*/ - memset(usb_buf, 0x00, sizeof(usb_buf)); - - /*-----------------------------------------------------*\ - | Set up Port State packet | - \*-----------------------------------------------------*/ - usb_buf[0x00] = CORSAIR_CMDR_PRO_PACKET_ID_PORT_STATE; - usb_buf[0x01] = channel; - usb_buf[0x02] = state; - - /*-----------------------------------------------------*\ - | Send packet | - \*-----------------------------------------------------*/ - libusb_interrupt_transfer(dev, 0x02, usb_buf, 64, &actual, 0); -} - -void CorsairCmdrProController::SendBrightness() -{ - -} - -void CorsairCmdrProController::SendLEDCount() -{ - -} - -void CorsairCmdrProController::SendProtocol() -{ - -} diff --git a/Controllers/CorsairCmdrProController/CorsairCmdrProController.h b/Controllers/CorsairCmdrProController/CorsairCmdrProController.h deleted file mode 100644 index 241a6ca60..000000000 --- a/Controllers/CorsairCmdrProController/CorsairCmdrProController.h +++ /dev/null @@ -1,166 +0,0 @@ -/*---------------------------------------------------------*\ -| Definitions for Corsair Commander Pro | -| | -| Adam Honse (calcprogrammer1@gmail.com), 1/16/2020 | -\*---------------------------------------------------------*/ - -#include "RGBController.h" -#include -#include - -#pragma once - -enum -{ - CORSAIR_CMDR_PRO_PACKET_ID_DIRECT = 0x32, /* Direct mode LED update packet */ - CORSAIR_CMDR_PRO_PACKET_ID_COMMIT = 0x33, /* Commit changes packet */ - CORSAIR_CMDR_PRO_PACKET_ID_BEGIN = 0x34, /* Begin effect packet */ - CORSAIR_CMDR_PRO_PACKET_ID_EFFECT_CONFIG = 0x35, /* Effect mode configuration packet */ - CORSAIR_CMDR_PRO_PACKET_ID_TEMPERATURE = 0x36, /* Update temperature value packet */ - CORSAIR_CMDR_PRO_PACKET_ID_RESET = 0x37, /* Reset channel packet */ - CORSAIR_CMDR_PRO_PACKET_ID_PORT_STATE = 0x38, /* Set port state packet */ - CORSAIR_CMDR_PRO_PACKET_ID_BRIGHTNESS = 0x39, /* Set brightness packet */ - CORSAIR_CMDR_PRO_PACKET_ID_LED_COUNT = 0x3A, /* Set LED count packet */ - CORSAIR_CMDR_PRO_PACKET_ID_PROTOCOL = 0x3B, /* Set protocol packet */ -}; - -enum -{ - CORSAIR_CMDR_PRO_DIRECT_CHANNEL_RED = 0x00, /* Red channel for direct update */ - CORSAIR_CMDR_PRO_DIRECT_CHANNEL_GREEN = 0x01, /* Green channel for direct update */ - CORSAIR_CMDR_PRO_DIRECT_CHANNEL_BLUE = 0x02, /* Blue channel for direct update */ -}; - -enum -{ - CORSAIR_CMDR_PRO_PORT_STATE_HARDWARE = 0x01, /* Effect hardware control of channel */ - CORSAIR_CMDR_PRO_PORT_STATE_SOFTWARE = 0x02, /* Direct software control of channel */ -}; - -enum -{ - CORSAIR_CMDR_PRO_LED_TYPE_LED_STRIP = 0x0A, /* Corsair LED Strip Type */ - CORSAIR_CMDR_PRO_LED_TYPE_HD_FAN = 0x0C, /* Corsair HD-series Fan Type */ - CORSAIR_CMDR_PRO_LED_TYPE_SP_FAN = 0x01, /* Corsair SP-series Fan Type */ - CORSAIR_CMDR_PRO_LED_TYPE_ML_FAN = 0x02, /* Corsair ML-series Fan Type */ -}; - -enum -{ - CORSAIR_CMDR_PRO_CHANNEL_1 = 0x00, /* Channel 1 */ - CORSAIR_CMDR_PRO_CHANNEL_2 = 0x01, /* Channel 2 */ - CORSAIR_CMDR_PRO_NUM_CHANNELS = 0x02, /* Number of channels */ -}; - -enum -{ - CORSAIR_CMDR_PRO_SPEED_FAST = 0x00, /* Fast speed */ - CORSAIR_CMDR_PRO_SPEED_MEDIUM = 0x01, /* Medium speed */ - CORSAIR_CMDR_PRO_SPEED_SLOW = 0x02, /* Slow speed */ -}; - -enum -{ - CORSAIR_CMDR_PRO_MODE_RAINBOW_WAVE = 0x00, /* Rainbow Wave mode */ - CORSAIR_CMDR_PRO_MODE_COLOR_SHIFT = 0x01, /* Color Shift mode */ - CORSAIR_CMDR_PRO_MODE_COLOR_PULSE = 0x02, /* Color Pulse mode */ - CORSAIR_CMDR_PRO_MODE_COLOR_WAVE = 0x03, /* Color Wave mode */ - CORSAIR_CMDR_PRO_MODE_STATIC = 0x04, /* Static mode */ - CORSAIR_CMDR_PRO_MODE_TEMPERATURE = 0x05, /* Temperature mode */ - CORSAIR_CMDR_PRO_MODE_VISOR = 0x06, /* Visor mode */ - CORSAIR_CMDR_PRO_MODE_MARQUEE = 0x07, /* Marquee mode */ - CORSAIR_CMDR_PRO_MODE_BLINK = 0x08, /* Blink mode */ - CORSAIR_CMDR_PRO_MODE_SEQUENTIAL = 0x09, /* Sequential mode */ - CORSAIR_CMDR_PRO_MODE_RAINBOW = 0x0A, /* Rainbow mode */ -}; - -class CorsairCmdrProController -{ -public: - CorsairCmdrProController(libusb_device_handle* dev_handle); - ~CorsairCmdrProController(); - - unsigned int GetStripsOnChannel(unsigned int channel); - - void SetChannelEffect(unsigned char channel, - unsigned char mode, - unsigned char speed, - unsigned char direction, - bool random, - unsigned char red1, - unsigned char grn1, - unsigned char blu1, - unsigned char red2, - unsigned char grn2, - unsigned char blu2, - unsigned char red3, - unsigned char grn3, - unsigned char blu3 - ); - - void SetChannelLEDs(unsigned char channel, std::vector colors); - unsigned int channel_leds[CORSAIR_CMDR_PRO_NUM_CHANNELS]; - - void KeepaliveThread(); - -private: - libusb_device_handle* dev; - - void SendDirect - ( - unsigned char channel, - unsigned char start, - unsigned char count, - unsigned char color_channel, - unsigned char* color_data - ); - - void SendCommit(); - - void SendBegin - ( - unsigned char channel - ); - - void SendEffectConfig - ( - unsigned char channel, - unsigned char count, - unsigned char led_type, - unsigned char mode, - unsigned char speed, - unsigned char direction, - unsigned char change_style, - unsigned char color_0_red, - unsigned char color_0_green, - unsigned char color_0_blue, - unsigned char color_1_red, - unsigned char color_1_green, - unsigned char color_1_blue, - unsigned char color_2_red, - unsigned char color_2_green, - unsigned char color_2_blue, - unsigned short temperature_0, - unsigned short temperature_1, - unsigned short temperature_2 - ); - - void SendTemperature(); - - void SendReset - ( - unsigned char channel - ); - - void SendPortState - ( - unsigned char channel, - unsigned char state - ); - - void SendBrightness(); - - void SendLEDCount(); - - void SendProtocol(); -}; diff --git a/Controllers/CorsairCmdrProController/CorsairCmdrProControllerDetect.cpp b/Controllers/CorsairCmdrProController/CorsairCmdrProControllerDetect.cpp deleted file mode 100644 index 6a5aeaa22..000000000 --- a/Controllers/CorsairCmdrProController/CorsairCmdrProControllerDetect.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "CorsairCmdrProController.h" -#include "RGBController.h" -#include "RGBController_CorsairCmdrPro.h" -#include -#include - -#define CORSAIR_COMMANDER_PRO_VID 0x1B1C -#define CORSAIR_COMMANDER_PRO_PID 0x0C10 - -/******************************************************************************************\ -* * -* DetectCorsairCmdrProControllers * -* * -* Detect devices supported by the Corsair Commander Pro driver * -* * * -\******************************************************************************************/ - -void DetectCorsairCmdrProControllers(std::vector &rgb_controllers) -{ - libusb_context * ctx; - libusb_init(&ctx); - - //Look for Corsair Commander Pro - libusb_device_handle * dev = libusb_open_device_with_vid_pid(ctx, CORSAIR_COMMANDER_PRO_VID, CORSAIR_COMMANDER_PRO_PID); - - if( dev ) - { - libusb_detach_kernel_driver(dev, 0); - libusb_claim_interface(dev, 0); - - CorsairCmdrProController* controller = new CorsairCmdrProController(dev); - - RGBController_CorsairCmdrPro* rgb_controller = new RGBController_CorsairCmdrPro(controller); - - rgb_controllers.push_back(rgb_controller); - } -} /* DetectCorsairCmdrProControllers() */ diff --git a/OpenRGB.pro b/OpenRGB.pro index 51079dd9e..0118c4183 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -33,7 +33,6 @@ INCLUDEPATH += \ # Controllers/AuraController/ \ # Controllers/AuraGPUController/ \ # Controllers/CorsairController/ \ -# Controllers/CorsairCmdrProController/ \ # Controllers/CorsairKeyboardController/ \ Controllers/CorsairNodeProController/ \ # Controllers/CorsairProController/ \ @@ -84,8 +83,6 @@ SOURCES += \ # 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 \ @@ -128,7 +125,6 @@ SOURCES += \ # 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 \ @@ -170,7 +166,6 @@ HEADERS += \ Controllers/AuraController/AuraController.h \ Controllers/AuraGPUController/AuraGPUController.h \ Controllers/CorsairController/CorsairController.h \ - Controllers/CorsairCmdrProController/CorsairCmdrProController.h \ Controllers/CorsairKeyboardController/CorsairKeyboardController.h \ Controllers/CorsairNodeProController/CorsairNodeProController.h \ Controllers/CorsairProController/CorsairProController.h \ @@ -194,7 +189,6 @@ HEADERS += \ RGBController/RGBController_Aura.h \ RGBController/RGBController_AuraGPU.h \ RGBController/RGBController_Corsair.h \ - RGBController/RGBController_CorsairCmdrPro.h \ RGBController/RGBController_CorsairNodePro.h \ RGBController/RGBController_CorsairPro.h \ RGBController/RGBController_Crucial.h \ diff --git a/RGBController/RGBController_CorsairCmdrPro.cpp b/RGBController/RGBController_CorsairCmdrPro.cpp deleted file mode 100644 index 10197e204..000000000 --- a/RGBController/RGBController_CorsairCmdrPro.cpp +++ /dev/null @@ -1,331 +0,0 @@ -/*-----------------------------------------*\ -| RGBController_CorsairCmdrPro.cpp | -| | -| Generic RGB Interface for Corsair | -| Commander Pro | -| | -| Adam Honse (CalcProgrammer1) 1/16/2020 | -\*-----------------------------------------*/ - -#include "RGBController_CorsairCmdrPro.h" - - -RGBController_CorsairCmdrPro::RGBController_CorsairCmdrPro(CorsairCmdrProController* corsair_ptr) -{ - corsair = corsair_ptr; - - name = "Corsair Commander Pro"; - - type = DEVICE_TYPE_LEDSTRIP; - - mode Direct; - Direct.name = "Direct"; - Direct.value = 0xFFFF; - Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Direct.color_mode = MODE_COLORS_PER_LED; - modes.push_back(Direct); - - mode RainbowWave; - RainbowWave.name = "Rainbow Wave"; - RainbowWave.value = CORSAIR_CMDR_PRO_MODE_RAINBOW_WAVE; - RainbowWave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR; - RainbowWave.speed_min = CORSAIR_CMDR_PRO_SPEED_SLOW; - RainbowWave.speed_max = CORSAIR_CMDR_PRO_SPEED_FAST; - RainbowWave.speed = CORSAIR_CMDR_PRO_SPEED_MEDIUM; - RainbowWave.direction = MODE_DIRECTION_RIGHT; - RainbowWave.color_mode = MODE_COLORS_NONE; - modes.push_back(RainbowWave); - - mode ColorShift; - ColorShift.name = "Color Shift"; - ColorShift.value = CORSAIR_CMDR_PRO_MODE_COLOR_SHIFT; - ColorShift.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - ColorShift.colors_min = 2; - ColorShift.colors_max = 2; - ColorShift.speed_min = CORSAIR_CMDR_PRO_SPEED_SLOW; - ColorShift.speed_max = CORSAIR_CMDR_PRO_SPEED_FAST; - ColorShift.speed = CORSAIR_CMDR_PRO_SPEED_MEDIUM; - ColorShift.color_mode = MODE_COLORS_MODE_SPECIFIC; - ColorShift.colors.resize(2); - modes.push_back(ColorShift); - - mode ColorPulse; - ColorPulse.name = "Color Pulse"; - ColorPulse.value = CORSAIR_CMDR_PRO_MODE_COLOR_PULSE; - ColorPulse.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - ColorPulse.colors_min = 2; - ColorPulse.colors_max = 2; - ColorPulse.speed_min = CORSAIR_CMDR_PRO_SPEED_SLOW; - ColorPulse.speed_max = CORSAIR_CMDR_PRO_SPEED_FAST; - ColorPulse.speed = CORSAIR_CMDR_PRO_SPEED_MEDIUM; - ColorPulse.color_mode = MODE_COLORS_MODE_SPECIFIC; - ColorPulse.colors.resize(2); - modes.push_back(ColorPulse); - - mode ColorWave; - ColorWave.name = "Color Wave"; - ColorWave.value = CORSAIR_CMDR_PRO_MODE_COLOR_WAVE; - ColorWave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - ColorWave.colors_min = 2; - ColorWave.colors_max = 2; - ColorWave.speed_min = CORSAIR_CMDR_PRO_SPEED_SLOW; - ColorWave.speed_max = CORSAIR_CMDR_PRO_SPEED_FAST; - ColorWave.speed = CORSAIR_CMDR_PRO_SPEED_MEDIUM; - ColorWave.direction = MODE_DIRECTION_RIGHT; - ColorWave.color_mode = MODE_COLORS_MODE_SPECIFIC; - ColorWave.colors.resize(2); - modes.push_back(ColorWave); - - mode Static; - Static.name = "Static"; - Static.value = CORSAIR_CMDR_PRO_MODE_STATIC; - Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR; - Static.colors_min = 1; - Static.colors_max = 1; - Static.color_mode = MODE_COLORS_MODE_SPECIFIC; - Static.colors.resize(1); - modes.push_back(Static); - - mode Temperature; - Temperature.name = "Temperature"; - Temperature.value = CORSAIR_CMDR_PRO_MODE_TEMPERATURE; - Temperature.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR; - Temperature.colors_min = 3; - Temperature.colors_max = 3; - Temperature.color_mode = MODE_COLORS_MODE_SPECIFIC; - Temperature.colors.resize(3); - modes.push_back(Temperature); - - mode Visor; - Visor.name = "Visor"; - Visor.value = CORSAIR_CMDR_PRO_MODE_VISOR; - Visor.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - Visor.colors_min = 2; - Visor.colors_max = 2; - Visor.speed_min = CORSAIR_CMDR_PRO_SPEED_SLOW; - Visor.speed_max = CORSAIR_CMDR_PRO_SPEED_FAST; - Visor.speed = CORSAIR_CMDR_PRO_SPEED_MEDIUM; - Visor.color_mode = MODE_COLORS_MODE_SPECIFIC; - Visor.colors.resize(2); - modes.push_back(Visor); - - mode Marquee; - Marquee.name = "Marquee"; - Marquee.value = CORSAIR_CMDR_PRO_MODE_MARQUEE; - Marquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - Marquee.colors_min = 1; - Marquee.colors_max = 1; - Marquee.speed_min = CORSAIR_CMDR_PRO_SPEED_SLOW; - Marquee.speed_max = CORSAIR_CMDR_PRO_SPEED_FAST; - Marquee.speed = CORSAIR_CMDR_PRO_SPEED_MEDIUM; - Marquee.direction = MODE_DIRECTION_RIGHT; - Marquee.color_mode = MODE_COLORS_MODE_SPECIFIC; - Marquee.colors.resize(1); - modes.push_back(Marquee); - - mode Blink; - Blink.name = "Blink"; - Blink.value = CORSAIR_CMDR_PRO_MODE_BLINK; - Blink.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - Blink.colors_min = 2; - Blink.colors_max = 2; - Blink.speed_min = CORSAIR_CMDR_PRO_SPEED_SLOW; - Blink.speed_max = CORSAIR_CMDR_PRO_SPEED_FAST; - Blink.speed = CORSAIR_CMDR_PRO_SPEED_MEDIUM; - Blink.color_mode = MODE_COLORS_MODE_SPECIFIC; - Blink.colors.resize(2); - modes.push_back(Blink); - - mode Sequential; - Sequential.name = "Sequential"; - Sequential.value = CORSAIR_CMDR_PRO_MODE_SEQUENTIAL; - Sequential.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR; - Sequential.colors_min = 1; - Sequential.colors_max = 1; - Sequential.speed_min = CORSAIR_CMDR_PRO_SPEED_SLOW; - Sequential.speed_max = CORSAIR_CMDR_PRO_SPEED_FAST; - Sequential.speed = CORSAIR_CMDR_PRO_SPEED_MEDIUM; - Sequential.direction = MODE_DIRECTION_RIGHT; - Sequential.color_mode = MODE_COLORS_MODE_SPECIFIC; - Sequential.colors.resize(1); - modes.push_back(Sequential); - - mode Rainbow; - Rainbow.name = "Rainbow"; - Rainbow.value = CORSAIR_CMDR_PRO_MODE_RAINBOW; - Rainbow.flags = MODE_FLAG_HAS_SPEED; - Rainbow.speed_min = CORSAIR_CMDR_PRO_SPEED_SLOW; - Rainbow.speed_max = CORSAIR_CMDR_PRO_SPEED_FAST; - Rainbow.speed = CORSAIR_CMDR_PRO_SPEED_MEDIUM; - Rainbow.color_mode = MODE_COLORS_NONE; - modes.push_back(Rainbow); - - /*-------------------------------------------------*\ - | Set size of colors array | - \*-------------------------------------------------*/ - unsigned int led_count = 0; - for (unsigned int channel_idx = 0; channel_idx < CORSAIR_CMDR_PRO_NUM_CHANNELS; channel_idx++) - { - led_count += corsair->channel_leds[channel_idx]; - } - colors.resize(led_count); - - /*-------------------------------------------------*\ - | Set zones and leds | - \*-------------------------------------------------*/ - unsigned int led_idx = 0; - for (unsigned int channel_idx = 0; channel_idx < CORSAIR_CMDR_PRO_NUM_CHANNELS; channel_idx++) - { - if(corsair->channel_leds[channel_idx] > 0) - { - zone* new_zone = new zone; - - char ch_idx_string[2]; - sprintf(ch_idx_string, "%d", channel_idx + 1); - - new_zone->name = "Corsair Channel "; - new_zone->name.append(ch_idx_string); - new_zone->type = ZONE_TYPE_LINEAR; - - std::vector *new_zone_map = new std::vector(); - - for (unsigned int led_ch_idx = 0; led_ch_idx < corsair->channel_leds[channel_idx]; led_ch_idx++) - { - char led_idx_string[3]; - sprintf(led_idx_string, "%d", led_ch_idx + 1); - - led new_led; - new_led.name = "Corsair Channel "; - new_led.name.append(ch_idx_string); - new_led.name.append(", LED "); - new_led.name.append(led_idx_string); - - 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); - } - } -} - -void RGBController_CorsairCmdrPro::UpdateLEDs() -{ - for(std::size_t zone_idx = 0; zone_idx < zones.size(); zone_idx++) - { - unsigned int channel = zones_channel[zone_idx]; - - std::vector 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); - } - } -} - -void RGBController_CorsairCmdrPro::UpdateZoneLEDs(int zone) -{ - unsigned int channel = zones_channel[zone]; - - std::vector 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); - } -} - -void RGBController_CorsairCmdrPro::UpdateSingleLED(int led) -{ - unsigned int channel = leds_channel[led]; - - std::vector 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); - } -} - -void RGBController_CorsairCmdrPro::SetCustomMode() -{ - active_mode = 0; -} - -void RGBController_CorsairCmdrPro::UpdateMode() -{ - if(modes[active_mode].value == 0xFFFF) - { - UpdateLEDs(); - } - else - { - for(int channel = 0; channel < CORSAIR_CMDR_PRO_NUM_CHANNELS; channel++) - { - unsigned int direction = 0; - bool random = (modes[active_mode].color_mode == MODE_COLORS_RANDOM); - - if(modes[active_mode].direction == MODE_DIRECTION_RIGHT) - { - direction = 1; - } - - unsigned char mode_colors[9]; - - if(modes[active_mode].color_mode == MODE_COLORS_MODE_SPECIFIC) - { - for(int i = 0; i < modes[active_mode].colors.size(); i++) - { - mode_colors[(3 * i) + 0] = RGBGetRValue(modes[active_mode].colors[i]); - mode_colors[(3 * i) + 1] = RGBGetGValue(modes[active_mode].colors[i]); - mode_colors[(3 * i) + 2] = RGBGetBValue(modes[active_mode].colors[i]); - } - } - - corsair->SetChannelEffect(channel, - modes[active_mode].value, - modes[active_mode].speed, - direction, - random, - mode_colors[0], - mode_colors[1], - mode_colors[2], - mode_colors[3], - mode_colors[4], - mode_colors[5], - mode_colors[6], - mode_colors[7], - mode_colors[8]); - } - } -} diff --git a/RGBController/RGBController_CorsairCmdrPro.h b/RGBController/RGBController_CorsairCmdrPro.h deleted file mode 100644 index 9ef54ef97..000000000 --- a/RGBController/RGBController_CorsairCmdrPro.h +++ /dev/null @@ -1,29 +0,0 @@ -/*-----------------------------------------*\ -| RGBController_CorsairCmdrPro.h | -| | -| Generic RGB Interface for Corsair | -| Commander Pro | -| | -| Adam Honse (CalcProgrammer1) 1/16/2020 | -\*-----------------------------------------*/ - -#pragma once -#include "RGBController.h" -#include "CorsairCmdrProController.h" - -class RGBController_CorsairCmdrPro : public RGBController -{ -public: - RGBController_CorsairCmdrPro(CorsairCmdrProController* corsair_ptr); - void UpdateLEDs(); - void UpdateZoneLEDs(int zone); - void UpdateSingleLED(int led); - - void SetCustomMode(); - void UpdateMode(); - -private: - CorsairCmdrProController* corsair; - std::vector leds_channel; - std::vector zones_channel; -};