Add support for Capellix Elite Pump lighting control
This commit is contained in:
parent
eb08ceb1e7
commit
7d37f58407
3 changed files with 15 additions and 5 deletions
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
CorsairCommanderCoreController::CorsairCommanderCoreController(hid_device* dev_handle, const char* path)
|
||||
CorsairCommanderCoreController::CorsairCommanderCoreController(hid_device* dev_handle, const char* path, int pid)
|
||||
{
|
||||
dev = dev_handle;
|
||||
location = path;
|
||||
|
|
@ -22,6 +22,7 @@ CorsairCommanderCoreController::CorsairCommanderCoreController(hid_device* dev_h
|
|||
controller_ready = 0;
|
||||
packet_size = CORSAIR_COMMANDER_CORE_PACKET_SIZE_V2;
|
||||
command_res_size = packet_size - 4;
|
||||
this->pid = pid;
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Initialize controller |
|
||||
|
|
@ -62,11 +63,15 @@ void CorsairCommanderCoreController::InitController()
|
|||
version[2] = res[2];
|
||||
delete[] res;
|
||||
|
||||
if(version[0] == 1)
|
||||
if (pid == 0x0C1C && version[0] == 1)
|
||||
{
|
||||
packet_size = CORSAIR_COMMANDER_CORE_PACKET_SIZE_V1;
|
||||
command_res_size = packet_size - 4;
|
||||
}
|
||||
else if (pid == 0x0C32)
|
||||
{
|
||||
packet_size = CORSAIR_COMMANDER_CORE_PACKET_SIZE_V3;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Wake up device |
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@
|
|||
|
||||
#define CORSAIR_COMMANDER_CORE_PACKET_SIZE_V1 1025 // First bit is the report bit
|
||||
#define CORSAIR_COMMANDER_CORE_PACKET_SIZE_V2 97 // First bit is the report bit
|
||||
#define CORSAIR_COMMANDER_CORE_PACKET_SIZE_V3 65 // First bit is the report bit
|
||||
|
||||
#define CORSAIR_COMMANDER_CORE_RGB_DATA_LENGTH 699
|
||||
#define CORSAIR_QL_FAN_ZONE_OFFSET 102
|
||||
#define CORSAIR_COMMANDER_CORE_NUM_CHANNELS 6
|
||||
|
|
@ -29,7 +31,7 @@ enum
|
|||
class CorsairCommanderCoreController
|
||||
{
|
||||
public:
|
||||
CorsairCommanderCoreController(hid_device* dev_handle, const char* path);
|
||||
CorsairCommanderCoreController(hid_device* dev_handle, const char* path, int pid);
|
||||
~CorsairCommanderCoreController();
|
||||
|
||||
std::string GetFirmwareString();
|
||||
|
|
@ -55,6 +57,7 @@ private:
|
|||
unsigned short int version[3] = {0, 0, 0};
|
||||
int packet_size;
|
||||
int command_res_size;
|
||||
int pid;
|
||||
std::chrono::time_point<std::chrono::steady_clock> last_commit_time;
|
||||
|
||||
void SendCommand(unsigned char command[2], unsigned char data[], unsigned short int data_len, unsigned char res[]);
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
| Commander Core product IDs |
|
||||
\*-----------------------------------------------------*/
|
||||
#define CORSAIR_COMMANDER_CORE_PID 0x0C1C
|
||||
#define CORSAIR_COMMANDER_CORE2_PID 0x0C32
|
||||
|
||||
/******************************************************************************************\
|
||||
* *
|
||||
|
|
@ -29,7 +30,7 @@ void DetectCorsairCapellixHIDControllers(hid_device_info* info, const std::strin
|
|||
|
||||
if(dev)
|
||||
{
|
||||
CorsairCommanderCoreController* controller = new CorsairCommanderCoreController(dev, info->path);
|
||||
CorsairCommanderCoreController* controller = new CorsairCommanderCoreController(dev, info->path, info->product_id);
|
||||
RGBController_CorsairCommanderCore* rgb_controller = new RGBController_CorsairCommanderCore(controller);
|
||||
|
||||
rgb_controller->name = name;
|
||||
|
|
@ -38,4 +39,5 @@ void DetectCorsairCapellixHIDControllers(hid_device_info* info, const std::strin
|
|||
}
|
||||
}
|
||||
|
||||
REGISTER_HID_DETECTOR_IPU("Corsair Commander Core", DetectCorsairCapellixHIDControllers, CORSAIR_VID, CORSAIR_COMMANDER_CORE_PID, 0x00, 0xFF42, 0x01);
|
||||
REGISTER_HID_DETECTOR_IPU("Corsair Commander Core", DetectCorsairCapellixHIDControllers, CORSAIR_VID, CORSAIR_COMMANDER_CORE_PID, 0x00, 0xFF42, 0x01);
|
||||
REGISTER_HID_DETECTOR_IPU("Corsair Commander Core", DetectCorsairCapellixHIDControllers, CORSAIR_VID, CORSAIR_COMMANDER_CORE2_PID, 0x00, 0xFF42, 0x01);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue