Initial commit for the Coolermaster MM711 mouse
* Implemented brightness * Implemented GetStatus packets for UI set up
This commit is contained in:
parent
1ba3c6adde
commit
3e6acbd049
7 changed files with 582 additions and 49 deletions
|
|
@ -84,6 +84,8 @@ ACTION=="add", SUBSYSTEM=="platform", KERNEL=="faustus", RUN+="/bin/chmod a+w /s
|
||||||
#---------------------------------------------------------------#
|
#---------------------------------------------------------------#
|
||||||
# Cooler Master Peripheral Devices #
|
# Cooler Master Peripheral Devices #
|
||||||
# #
|
# #
|
||||||
|
# Mice: #
|
||||||
|
# Cooler Master MM711 #
|
||||||
# Mousemats: #
|
# Mousemats: #
|
||||||
# Cooler Master MP750 #
|
# Cooler Master MP750 #
|
||||||
# Controllers: #
|
# Controllers: #
|
||||||
|
|
@ -99,6 +101,7 @@ ACTION=="add", SUBSYSTEM=="platform", KERNEL=="faustus", RUN+="/bin/chmod a+w /s
|
||||||
# Masterkeys SK630 #
|
# Masterkeys SK630 #
|
||||||
# Masterkeys SK650 #
|
# Masterkeys SK650 #
|
||||||
#---------------------------------------------------------------#
|
#---------------------------------------------------------------#
|
||||||
|
SUBSYSTEMS=="usb", ATTR{idVendor}=="2516", ATTR{idProduct}=="0101", TAG+="uaccess" #MM711
|
||||||
SUBSYSTEMS=="usb", ATTR{idVendor}=="2516", ATTR{idProduct}=="0109", TAG+="uaccess"
|
SUBSYSTEMS=="usb", ATTR{idVendor}=="2516", ATTR{idProduct}=="0109", TAG+="uaccess"
|
||||||
SUBSYSTEMS=="usb", ATTR{idVendor}=="2516", ATTR{idProduct}=="0105", TAG+="uaccess"
|
SUBSYSTEMS=="usb", ATTR{idVendor}=="2516", ATTR{idProduct}=="0105", TAG+="uaccess"
|
||||||
SUBSYSTEMS=="usb", ATTR{idVendor}=="2516", ATTR{idProduct}=="1011", TAG+="uaccess"
|
SUBSYSTEMS=="usb", ATTR{idVendor}=="2516", ATTR{idProduct}=="1011", TAG+="uaccess"
|
||||||
|
|
|
||||||
180
Controllers/CoolerMasterController/CMMM711Controller.cpp
Normal file
180
Controllers/CoolerMasterController/CMMM711Controller.cpp
Normal file
|
|
@ -0,0 +1,180 @@
|
||||||
|
/*-------------------------------------------------------------------*\
|
||||||
|
| CMMM711Controller.cpp |
|
||||||
|
| |
|
||||||
|
| Driver for Coolermaster Master Mouse 711 |
|
||||||
|
| |
|
||||||
|
| Chris M (Dr_No) 14th Feb 2021 |
|
||||||
|
| |
|
||||||
|
\*-------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "CMMM711Controller.h"
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
CMMM711Controller::CMMM711Controller(hid_device* dev_handle, char *_path)
|
||||||
|
{
|
||||||
|
const int szTemp = HID_MAX_STR;
|
||||||
|
wchar_t tmpName[szTemp];
|
||||||
|
|
||||||
|
dev = dev_handle;
|
||||||
|
location = _path;
|
||||||
|
current_speed = CM_MM711_SPEED_NORMAL;
|
||||||
|
|
||||||
|
hid_get_manufacturer_string(dev, tmpName, szTemp);
|
||||||
|
std::wstring wName = std::wstring(tmpName);
|
||||||
|
device_name = std::string(wName.begin(), wName.end());
|
||||||
|
|
||||||
|
hid_get_product_string(dev, tmpName, szTemp);
|
||||||
|
wName = std::wstring(tmpName);
|
||||||
|
device_name.append(" ").append(std::string(wName.begin(), wName.end()));
|
||||||
|
|
||||||
|
hid_get_indexed_string(dev, 2, tmpName, szTemp);
|
||||||
|
wName = std::wstring(tmpName);
|
||||||
|
serial = std::string(wName.begin(), wName.end());
|
||||||
|
|
||||||
|
SendInitPacket();
|
||||||
|
GetColourStatus();
|
||||||
|
GetCustomStatus();
|
||||||
|
GetModeStatus();
|
||||||
|
}
|
||||||
|
|
||||||
|
CMMM711Controller::~CMMM711Controller()
|
||||||
|
{
|
||||||
|
hid_close(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMMM711Controller::GetColourStatus()
|
||||||
|
{
|
||||||
|
uint8_t buffer[CM_MM711_PACKET_SIZE] = { 0x00, 0x52, 0x2B };
|
||||||
|
|
||||||
|
hid_write(dev, buffer, CM_MM711_PACKET_SIZE);
|
||||||
|
hid_read_timeout(dev, buffer, CM_MM711_PACKET_SIZE, CM_MM711_INTERRUPT_TIMEOUT);
|
||||||
|
|
||||||
|
current_brightness = buffer[CM_MM711_BRIGHTNESS_BYTE - 1];
|
||||||
|
current_red = buffer[CM_MM711_RED_BYTE - 1];
|
||||||
|
current_green = buffer[CM_MM711_GREEN_BYTE - 1];
|
||||||
|
current_blue = buffer[CM_MM711_BLUE_BYTE - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMMM711Controller::GetCustomStatus()
|
||||||
|
{
|
||||||
|
uint8_t buffer[CM_MM711_PACKET_SIZE] = { 0x00, 0x52, 0xA8 };
|
||||||
|
int buffer_size = (sizeof(buffer) / sizeof(buffer[0]));
|
||||||
|
|
||||||
|
hid_write(dev, buffer, buffer_size);
|
||||||
|
hid_read_timeout(dev, buffer, buffer_size, CM_MM711_INTERRUPT_TIMEOUT);
|
||||||
|
|
||||||
|
wheel_colour = ToRGBColor(buffer[4], buffer[5], buffer[6]);
|
||||||
|
logo_colour = ToRGBColor(buffer[7], buffer[8], buffer[9]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMMM711Controller::GetModeStatus()
|
||||||
|
{
|
||||||
|
uint8_t buffer[CM_MM711_PACKET_SIZE] = { 0x00, 0x52, 0x28 };
|
||||||
|
int buffer_size = (sizeof(buffer) / sizeof(buffer[0]));
|
||||||
|
|
||||||
|
hid_write(dev, buffer, buffer_size);
|
||||||
|
hid_read_timeout(dev, buffer, buffer_size, CM_MM711_INTERRUPT_TIMEOUT);
|
||||||
|
|
||||||
|
current_mode = buffer[CM_MM711_MODE_BYTE - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string CMMM711Controller::GetDeviceName()
|
||||||
|
{
|
||||||
|
return device_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string CMMM711Controller::GetSerial()
|
||||||
|
{
|
||||||
|
return serial;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string CMMM711Controller::GetLocation()
|
||||||
|
{
|
||||||
|
return("HID: " + location);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned char CMMM711Controller::GetMode()
|
||||||
|
{
|
||||||
|
return current_mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned char CMMM711Controller::GetLedRed()
|
||||||
|
{
|
||||||
|
return current_red;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned char CMMM711Controller::GetLedGreen()
|
||||||
|
{
|
||||||
|
return current_green;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned char CMMM711Controller::GetLedBlue()
|
||||||
|
{
|
||||||
|
return current_blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned char CMMM711Controller::GetLedSpeed()
|
||||||
|
{
|
||||||
|
return current_speed;
|
||||||
|
}
|
||||||
|
|
||||||
|
RGBColor CMMM711Controller::GetWheelColour()
|
||||||
|
{
|
||||||
|
return wheel_colour;
|
||||||
|
}
|
||||||
|
|
||||||
|
RGBColor CMMM711Controller::GetLogoColour()
|
||||||
|
{
|
||||||
|
return logo_colour;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMMM711Controller::SetLedsDirect(RGBColor wheel_colour, RGBColor logo_colour)
|
||||||
|
{
|
||||||
|
unsigned char buffer[CM_MM711_PACKET_SIZE] = { 0x00, 0x51, 0xA8, 0x00, 0x00 };
|
||||||
|
|
||||||
|
buffer[CM_MM711_MODE_BYTE] = RGBGetRValue(wheel_colour);
|
||||||
|
buffer[CM_MM711_SPEED_BYTE] = RGBGetGValue(wheel_colour);
|
||||||
|
buffer[CM_MM711_NFI_1] = RGBGetBValue(wheel_colour);
|
||||||
|
buffer[CM_MM711_NFI_2] = RGBGetRValue(logo_colour);
|
||||||
|
buffer[CM_MM711_NFI_3] = RGBGetGValue(logo_colour);
|
||||||
|
buffer[CM_MM711_BRIGHTNESS_BYTE] = RGBGetBValue(logo_colour);
|
||||||
|
|
||||||
|
hid_write(dev, buffer, CM_MM711_PACKET_SIZE);
|
||||||
|
|
||||||
|
SendApplyPacket(0xB0); //Apply custom mode
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMMM711Controller::SendUpdate(uint8_t mode, uint8_t speed, RGBColor colour, uint8_t brightness)
|
||||||
|
{
|
||||||
|
unsigned char buffer[CM_MM711_PACKET_SIZE] = { 0x00, 0x51, 0x2B, 0x00, 0x00 };
|
||||||
|
|
||||||
|
buffer[CM_MM711_MODE_BYTE] = mode;
|
||||||
|
buffer[CM_MM711_SPEED_BYTE] = speed;
|
||||||
|
buffer[CM_MM711_NFI_1] = 0x20;
|
||||||
|
buffer[CM_MM711_NFI_2] = 0xFF;
|
||||||
|
buffer[CM_MM711_NFI_3] = 0xFF;
|
||||||
|
buffer[CM_MM711_BRIGHTNESS_BYTE] = brightness;
|
||||||
|
buffer[CM_MM711_RED_BYTE] = RGBGetRValue(colour);
|
||||||
|
buffer[CM_MM711_GREEN_BYTE] = RGBGetGValue(colour);
|
||||||
|
buffer[CM_MM711_BLUE_BYTE] = RGBGetBValue(colour);
|
||||||
|
|
||||||
|
hid_write(dev, buffer, CM_MM711_PACKET_SIZE);
|
||||||
|
|
||||||
|
SendApplyPacket(mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMMM711Controller::SendInitPacket()
|
||||||
|
{
|
||||||
|
unsigned char buffer[CM_MM711_PACKET_SIZE] = { 0x00, 0x41, 0x80 };
|
||||||
|
|
||||||
|
hid_write(dev, buffer, CM_MM711_PACKET_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMMM711Controller::SendApplyPacket(uint8_t mode)
|
||||||
|
{
|
||||||
|
unsigned char buffer[CM_MM711_PACKET_SIZE] = { 0x00, 0x51, 0x28, 0x00, 0x00 };
|
||||||
|
|
||||||
|
buffer[CM_MM711_MODE_BYTE] = mode;
|
||||||
|
|
||||||
|
hid_write(dev, buffer, CM_MM711_PACKET_SIZE);
|
||||||
|
}
|
||||||
100
Controllers/CoolerMasterController/CMMM711Controller.h
Normal file
100
Controllers/CoolerMasterController/CMMM711Controller.h
Normal file
|
|
@ -0,0 +1,100 @@
|
||||||
|
/*-------------------------------------------------------------------*\
|
||||||
|
| CMMM711Controller.h |
|
||||||
|
| |
|
||||||
|
| Driver for Coolermaster Master Mouse 711 |
|
||||||
|
| |
|
||||||
|
| Chris M (Dr_No) 14th Feb 2021 |
|
||||||
|
| |
|
||||||
|
\*-------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <array>
|
||||||
|
#include <hidapi/hidapi.h>
|
||||||
|
#include "RGBController.h"
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define CM_MM711_PACKET_SIZE 65
|
||||||
|
#define CM_MM711_COLOUR_MODE_DATA_SIZE (sizeof(colour_mode_data[0]) / sizeof(colour_mode_data[0][0]))
|
||||||
|
#define CM_MM711_HEADER_DATA_SIZE (sizeof(argb_header_data) / sizeof(argb_headers) )
|
||||||
|
#define CM_MM711_INTERRUPT_TIMEOUT 250
|
||||||
|
#define CM_MM711_DEVICE_NAME_SIZE (sizeof(device_name) / sizeof(device_name[ 0 ]))
|
||||||
|
#define HID_MAX_STR 255
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
CM_MM711_REPORT_BYTE = 1,
|
||||||
|
CM_MM711_COMMAND_BYTE = 2,
|
||||||
|
CM_MM711_FUNCTION_BYTE = 3,
|
||||||
|
CM_MM711_ZONE_BYTE = 4,
|
||||||
|
CM_MM711_MODE_BYTE = 5,
|
||||||
|
CM_MM711_SPEED_BYTE = 6,
|
||||||
|
CM_MM711_NFI_1 = 7,
|
||||||
|
CM_MM711_NFI_2 = 8,
|
||||||
|
CM_MM711_NFI_3 = 9,
|
||||||
|
CM_MM711_BRIGHTNESS_BYTE = 10,
|
||||||
|
CM_MM711_RED_BYTE = 11,
|
||||||
|
CM_MM711_GREEN_BYTE = 12,
|
||||||
|
CM_MM711_BLUE_BYTE = 13,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
CM_MM711_MODE_STATIC = 0, //Static Mode
|
||||||
|
CM_MM711_MODE_BREATHING = 1, //Breathing Mode
|
||||||
|
CM_MM711_MODE_SPECTRUM_CYCLE = 2, //Spectrum Cycle Mode
|
||||||
|
CM_MM711_MODE_INDICATOR = 4, //Indicator Mode
|
||||||
|
CM_MM711_MODE_CUSTOM = 176, //Custom LED Control
|
||||||
|
CM_MM711_MODE_OFF = 254 //Turn Off
|
||||||
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
CM_MM711_SPEED_SLOWEST = 0x5F, // Slowest speed
|
||||||
|
CM_MM711_SPEED_NORMAL = 0x38, // Normal speed
|
||||||
|
CM_MM711_SPEED_FASTEST = 0x20, // Fastest speed
|
||||||
|
};
|
||||||
|
|
||||||
|
class CMMM711Controller
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CMMM711Controller(hid_device* dev_handle, char *_path);
|
||||||
|
~CMMM711Controller();
|
||||||
|
|
||||||
|
std::string GetDeviceName();
|
||||||
|
std::string GetSerial();
|
||||||
|
std::string GetLocation();
|
||||||
|
|
||||||
|
uint8_t GetZoneIndex();
|
||||||
|
uint8_t GetMode();
|
||||||
|
uint8_t GetLedRed();
|
||||||
|
uint8_t GetLedGreen();
|
||||||
|
uint8_t GetLedBlue();
|
||||||
|
uint8_t GetLedSpeed();
|
||||||
|
RGBColor GetWheelColour();
|
||||||
|
RGBColor GetLogoColour();
|
||||||
|
|
||||||
|
void SendUpdate(uint8_t mode, uint8_t speed, RGBColor colour, uint8_t brightness);
|
||||||
|
void SetLedsDirect(RGBColor wheel_colour, RGBColor logo_colour);
|
||||||
|
private:
|
||||||
|
std::string device_name;
|
||||||
|
std::string serial;
|
||||||
|
std::string location;
|
||||||
|
hid_device* dev;
|
||||||
|
|
||||||
|
uint8_t current_mode;
|
||||||
|
uint8_t current_speed;
|
||||||
|
|
||||||
|
uint8_t current_brightness;
|
||||||
|
uint8_t current_red;
|
||||||
|
uint8_t current_green;
|
||||||
|
uint8_t current_blue;
|
||||||
|
RGBColor wheel_colour;
|
||||||
|
RGBColor logo_colour;
|
||||||
|
|
||||||
|
void GetColourStatus();
|
||||||
|
void GetCustomStatus();
|
||||||
|
void GetModeStatus();
|
||||||
|
void SendInitPacket();
|
||||||
|
void SendApplyPacket(uint8_t mode);
|
||||||
|
};
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#include "Detector.h"
|
#include "Detector.h"
|
||||||
|
#include "CMMM711Controller.h"
|
||||||
#include "CMMP750Controller.h"
|
#include "CMMP750Controller.h"
|
||||||
#include "CMARGBcontroller.h"
|
#include "CMARGBcontroller.h"
|
||||||
#include "CMSmallARGBController.h"
|
#include "CMSmallARGBController.h"
|
||||||
|
|
@ -6,6 +7,7 @@
|
||||||
#include "CMR6000Controller.h"
|
#include "CMR6000Controller.h"
|
||||||
#include "CMMKController.h"
|
#include "CMMKController.h"
|
||||||
#include "RGBController.h"
|
#include "RGBController.h"
|
||||||
|
#include "RGBController_CMMM711Controller.h"
|
||||||
#include "RGBController_CMMP750Controller.h"
|
#include "RGBController_CMMP750Controller.h"
|
||||||
#include "RGBController_CMARGBController.h"
|
#include "RGBController_CMARGBController.h"
|
||||||
#include "RGBController_CMSmallARGBController.h"
|
#include "RGBController_CMSmallARGBController.h"
|
||||||
|
|
@ -16,6 +18,7 @@
|
||||||
|
|
||||||
#define COOLERMASTER_VID 0x2516
|
#define COOLERMASTER_VID 0x2516
|
||||||
|
|
||||||
|
#define COOLERMASTER_MM711_PID 0x0101
|
||||||
#define COOLERMASTER_MP750_XL_PID 0x0109
|
#define COOLERMASTER_MP750_XL_PID 0x0109
|
||||||
#define COOLERMASTER_MP750_MEDIUM_PID 0x0105
|
#define COOLERMASTER_MP750_MEDIUM_PID 0x0105
|
||||||
#define COOLERMASTER_ARGB_PID 0x1011
|
#define COOLERMASTER_ARGB_PID 0x1011
|
||||||
|
|
@ -37,18 +40,6 @@
|
||||||
* *
|
* *
|
||||||
\******************************************************************************************/
|
\******************************************************************************************/
|
||||||
|
|
||||||
void DetectCoolerMasterMousemats(hid_device_info* info, const std::string&)
|
|
||||||
{
|
|
||||||
hid_device* dev = hid_open_path(info->path);
|
|
||||||
if(dev)
|
|
||||||
{
|
|
||||||
CMMP750Controller* controller = new CMMP750Controller(dev, info->path);
|
|
||||||
RGBController_CMMP750Controller* rgb_controller = new RGBController_CMMP750Controller(controller);
|
|
||||||
// Constructor sets the name
|
|
||||||
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DetectCoolerMasterARGB(hid_device_info* info, const std::string&)
|
void DetectCoolerMasterARGB(hid_device_info* info, const std::string&)
|
||||||
{
|
{
|
||||||
hid_device* dev = hid_open_path(info->path);
|
hid_device* dev = hid_open_path(info->path);
|
||||||
|
|
@ -64,30 +55,6 @@ void DetectCoolerMasterARGB(hid_device_info* info, const std::string&)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DetectCoolerMasterSmallARGB(hid_device_info* info, const std::string&)
|
|
||||||
{
|
|
||||||
hid_device* dev = hid_open_path(info->path);
|
|
||||||
if(dev)
|
|
||||||
{
|
|
||||||
CMSmallARGBController* controller = new CMSmallARGBController(dev, info->path, 0);
|
|
||||||
RGBController_CMSmallARGBController* rgb_controller = new RGBController_CMSmallARGBController(controller);
|
|
||||||
// Constructor sets the name
|
|
||||||
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DetectCoolerMasterRGB(hid_device_info* info, const std::string&)
|
|
||||||
{
|
|
||||||
hid_device* dev = hid_open_path(info->path);
|
|
||||||
if(dev)
|
|
||||||
{
|
|
||||||
CMRGBController* controller = new CMRGBController(dev, info->path);
|
|
||||||
RGBController_CMRGBController* rgb_controller = new RGBController_CMRGBController(controller);
|
|
||||||
// Constructor sets the name
|
|
||||||
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DetectCoolerMasterGPU(hid_device_info* info, const std::string&)
|
void DetectCoolerMasterGPU(hid_device_info* info, const std::string&)
|
||||||
{
|
{
|
||||||
hid_device* dev = hid_open_path(info->path);
|
hid_device* dev = hid_open_path(info->path);
|
||||||
|
|
@ -113,15 +80,64 @@ void DetectCoolerMasterKeyboards(hid_device_info* info, const std::string&)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
REGISTER_HID_DETECTOR_PU ("Cooler Master MP750 XL", DetectCoolerMasterMousemats, COOLERMASTER_VID, COOLERMASTER_MP750_XL_PID, 0xFF00, 1 );
|
void DetectCoolerMasterMouse(hid_device_info* info, const std::string&)
|
||||||
REGISTER_HID_DETECTOR_PU ("Cooler Master MP750 Medium", DetectCoolerMasterMousemats, COOLERMASTER_VID, COOLERMASTER_MP750_MEDIUM_PID, 0xFF00, 1 );
|
{
|
||||||
|
hid_device* dev = hid_open_path(info->path);
|
||||||
|
if(dev)
|
||||||
|
{
|
||||||
|
CMMM711Controller* controller = new CMMM711Controller(dev, info->path);
|
||||||
|
RGBController_CMMM711Controller* rgb_controller = new RGBController_CMMM711Controller(controller);
|
||||||
|
// Constructor sets the name
|
||||||
|
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DetectCoolerMasterMousemats(hid_device_info* info, const std::string&)
|
||||||
|
{
|
||||||
|
hid_device* dev = hid_open_path(info->path);
|
||||||
|
if(dev)
|
||||||
|
{
|
||||||
|
CMMP750Controller* controller = new CMMP750Controller(dev, info->path);
|
||||||
|
RGBController_CMMP750Controller* rgb_controller = new RGBController_CMMP750Controller(controller);
|
||||||
|
// Constructor sets the name
|
||||||
|
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DetectCoolerMasterRGB(hid_device_info* info, const std::string&)
|
||||||
|
{
|
||||||
|
hid_device* dev = hid_open_path(info->path);
|
||||||
|
if(dev)
|
||||||
|
{
|
||||||
|
CMRGBController* controller = new CMRGBController(dev, info->path);
|
||||||
|
RGBController_CMRGBController* rgb_controller = new RGBController_CMRGBController(controller);
|
||||||
|
// Constructor sets the name
|
||||||
|
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DetectCoolerMasterSmallARGB(hid_device_info* info, const std::string&)
|
||||||
|
{
|
||||||
|
hid_device* dev = hid_open_path(info->path);
|
||||||
|
if(dev)
|
||||||
|
{
|
||||||
|
CMSmallARGBController* controller = new CMSmallARGBController(dev, info->path, 0);
|
||||||
|
RGBController_CMSmallARGBController* rgb_controller = new RGBController_CMSmallARGBController(controller);
|
||||||
|
// Constructor sets the name
|
||||||
|
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
REGISTER_HID_DETECTOR_IPU("Cooler Master MM711", DetectCoolerMasterMouse, COOLERMASTER_VID, COOLERMASTER_MM711_PID, 1, 0xFF00, 1);
|
||||||
|
REGISTER_HID_DETECTOR_PU ("Cooler Master MP750 XL", DetectCoolerMasterMousemats, COOLERMASTER_VID, COOLERMASTER_MP750_XL_PID, 0xFF00, 1);
|
||||||
|
REGISTER_HID_DETECTOR_PU ("Cooler Master MP750 Medium", DetectCoolerMasterMousemats, COOLERMASTER_VID, COOLERMASTER_MP750_MEDIUM_PID, 0xFF00, 1);
|
||||||
REGISTER_HID_DETECTOR_IPU("Cooler Master MasterKeys Pro L", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_PRO_L_PID, 1, 0xFF00, 1);
|
REGISTER_HID_DETECTOR_IPU("Cooler Master MasterKeys Pro L", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_PRO_L_PID, 1, 0xFF00, 1);
|
||||||
REGISTER_HID_DETECTOR_IPU("Cooler Master MasterKeys Pro L White", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_PRO_L_WHITE_PID, 1, 0xFF00, 1);
|
REGISTER_HID_DETECTOR_IPU("Cooler Master MasterKeys Pro L White", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_PRO_L_WHITE_PID, 1, 0xFF00, 1);
|
||||||
REGISTER_HID_DETECTOR_IPU("Cooler Master MasterKeys Pro S", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_PRO_S_PID, 1, 0xFF00, 1);
|
REGISTER_HID_DETECTOR_IPU("Cooler Master MasterKeys Pro S", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_PRO_S_PID, 1, 0xFF00, 1);
|
||||||
REGISTER_HID_DETECTOR_IPU("Cooler Master MK570", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_MK750_PID, 1, 0xFF00, 1);
|
REGISTER_HID_DETECTOR_IPU("Cooler Master MK570", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_MK750_PID, 1, 0xFF00, 1);
|
||||||
REGISTER_HID_DETECTOR_IPU("Cooler Master SK630", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_SK630_PID, 1, 0xFF00, 1);
|
REGISTER_HID_DETECTOR_IPU("Cooler Master SK630", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_SK630_PID, 1, 0xFF00, 1);
|
||||||
REGISTER_HID_DETECTOR_IPU("Cooler Master SK650", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_SK650_PID, 1, 0xFF00, 1);
|
REGISTER_HID_DETECTOR_IPU("Cooler Master SK650", DetectCoolerMasterKeyboards, COOLERMASTER_VID, COOLERMASTER_MASTERKEYS_SK650_PID, 1, 0xFF00, 1);
|
||||||
REGISTER_HID_DETECTOR_IPU("Cooler Master ARGB", DetectCoolerMasterARGB, COOLERMASTER_VID, COOLERMASTER_ARGB_PID, 0, 0xFF00, 1);
|
REGISTER_HID_DETECTOR_IPU("Cooler Master ARGB", DetectCoolerMasterARGB, COOLERMASTER_VID, COOLERMASTER_ARGB_PID, 0, 0xFF00, 1);
|
||||||
REGISTER_HID_DETECTOR_IPU("Cooler Master Small ARGB", DetectCoolerMasterSmallARGB, COOLERMASTER_VID, COOLERMASTER_SMALL_ARGB_PID, 0, 0xFF00, 1);
|
REGISTER_HID_DETECTOR_IPU("Cooler Master Small ARGB", DetectCoolerMasterSmallARGB, COOLERMASTER_VID, COOLERMASTER_SMALL_ARGB_PID, 0, 0xFF00, 1);
|
||||||
REGISTER_HID_DETECTOR_IPU("Cooler Master RGB", DetectCoolerMasterRGB, COOLERMASTER_VID, COOLERMASTER_RGB_PID, 0, 0xFF00, 1);
|
REGISTER_HID_DETECTOR_IPU("Cooler Master RGB", DetectCoolerMasterRGB, COOLERMASTER_VID, COOLERMASTER_RGB_PID, 0, 0xFF00, 1);
|
||||||
REGISTER_HID_DETECTOR_I ("Cooler Master Radeon 6000 GPU", DetectCoolerMasterGPU, COOLERMASTER_VID, COOLERMASTER_RADEON_6000_PID, 1 );
|
REGISTER_HID_DETECTOR_I ("Cooler Master Radeon 6000 GPU", DetectCoolerMasterGPU, COOLERMASTER_VID, COOLERMASTER_RADEON_6000_PID, 1 );
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,191 @@
|
||||||
|
/*-------------------------------------------------------------------*\
|
||||||
|
| RGBController_CMMM711Controller.cpp |
|
||||||
|
| |
|
||||||
|
| Driver for Coolermaster MM711 Controller |
|
||||||
|
| |
|
||||||
|
| Chris M (Dr_No) 14th Feb 2021 |
|
||||||
|
| |
|
||||||
|
\*-------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "RGBController_CMMM711Controller.h"
|
||||||
|
|
||||||
|
RGBController_CMMM711Controller::RGBController_CMMM711Controller(CMMM711Controller *cmmm711_ptr)
|
||||||
|
{
|
||||||
|
cmmm711 = cmmm711_ptr;
|
||||||
|
uint8_t speed = cmmm711->GetLedSpeed();
|
||||||
|
|
||||||
|
name = cmmm711->GetDeviceName();
|
||||||
|
vendor = "Cooler Master";
|
||||||
|
type = DEVICE_TYPE_MOUSE;
|
||||||
|
description = cmmm711->GetDeviceName();
|
||||||
|
version = "1.0";
|
||||||
|
serial = cmmm711->GetSerial();
|
||||||
|
location = cmmm711->GetLocation();
|
||||||
|
|
||||||
|
mode Custom;
|
||||||
|
Custom.name = "Direct";
|
||||||
|
Custom.value = CM_MM711_MODE_CUSTOM;
|
||||||
|
Custom.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS;
|
||||||
|
Custom.brightness_min = CM_MM_ARGB_BRIGHTNESS_MIN;
|
||||||
|
Custom.brightness_max = CM_MM_ARGB_BRIGHTNESS_MAX_DEFAULT;
|
||||||
|
Custom.brightness = CM_MM_ARGB_BRIGHTNESS_MAX_DEFAULT;
|
||||||
|
Custom.color_mode = MODE_COLORS_PER_LED;
|
||||||
|
modes.push_back(Custom);
|
||||||
|
|
||||||
|
mode Static;
|
||||||
|
Static.name = "Static";
|
||||||
|
Static.value = CM_MM711_MODE_STATIC;
|
||||||
|
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS;
|
||||||
|
Static.brightness_min = CM_MM_ARGB_BRIGHTNESS_MIN;
|
||||||
|
Static.brightness_max = CM_MM_ARGB_BRIGHTNESS_MAX_DEFAULT;
|
||||||
|
Static.brightness = CM_MM_ARGB_BRIGHTNESS_MAX_DEFAULT;
|
||||||
|
Static.colors_min = 1;
|
||||||
|
Static.colors_max = 1;
|
||||||
|
Static.colors.resize(Static.colors_max);
|
||||||
|
Static.speed_min = CM_MM711_SPEED_SLOWEST;
|
||||||
|
Static.speed_max = CM_MM711_SPEED_FASTEST;
|
||||||
|
Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||||
|
Static.speed = CM_MM711_SPEED_NORMAL;
|
||||||
|
modes.push_back(Static);
|
||||||
|
|
||||||
|
mode Breathing;
|
||||||
|
Breathing.name = "Breathing";
|
||||||
|
Breathing.value = CM_MM711_MODE_BREATHING;
|
||||||
|
Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS;
|
||||||
|
Breathing.brightness_min = CM_MM_ARGB_BRIGHTNESS_MIN;
|
||||||
|
Breathing.brightness_max = CM_MM_ARGB_BRIGHTNESS_MAX_DEFAULT;
|
||||||
|
Breathing.brightness = CM_MM_ARGB_BRIGHTNESS_MAX_DEFAULT;
|
||||||
|
Breathing.colors_min = 1;
|
||||||
|
Breathing.colors_max = 1;
|
||||||
|
Breathing.colors.resize(Breathing.colors_max);
|
||||||
|
Breathing.speed_min = CM_MM711_SPEED_SLOWEST;
|
||||||
|
Breathing.speed_max = CM_MM711_SPEED_FASTEST;
|
||||||
|
Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||||
|
Breathing.speed = CM_MM711_SPEED_NORMAL;
|
||||||
|
modes.push_back(Breathing);
|
||||||
|
|
||||||
|
mode Spectrum_Cycle;
|
||||||
|
Spectrum_Cycle.name = "Spectrum Cycle";
|
||||||
|
Spectrum_Cycle.value = CM_MM711_MODE_SPECTRUM_CYCLE;
|
||||||
|
Spectrum_Cycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS;
|
||||||
|
Spectrum_Cycle.brightness_min = CM_MM_ARGB_BRIGHTNESS_MIN;
|
||||||
|
Spectrum_Cycle.brightness_max = CM_MM_ARGB_BRIGHTNESS_MAX_SPECTRUM;
|
||||||
|
Spectrum_Cycle.brightness = CM_MM_ARGB_BRIGHTNESS_MAX_SPECTRUM;
|
||||||
|
Spectrum_Cycle.speed_min = CM_MM711_SPEED_SLOWEST;
|
||||||
|
Spectrum_Cycle.speed_max = CM_MM711_SPEED_FASTEST;
|
||||||
|
Spectrum_Cycle.color_mode = MODE_COLORS_NONE;
|
||||||
|
Spectrum_Cycle.speed = CM_MM711_SPEED_NORMAL;
|
||||||
|
modes.push_back(Spectrum_Cycle);
|
||||||
|
|
||||||
|
mode Indicator;
|
||||||
|
Indicator.name = "Indicator";
|
||||||
|
Indicator.value = CM_MM711_MODE_INDICATOR;
|
||||||
|
Indicator.color_mode = MODE_COLORS_NONE;
|
||||||
|
modes.push_back(Indicator);
|
||||||
|
|
||||||
|
mode Off;
|
||||||
|
Off.name = "Turn Off";
|
||||||
|
Off.value = CM_MM711_MODE_OFF;
|
||||||
|
Off.color_mode = MODE_COLORS_NONE;
|
||||||
|
modes.push_back(Off);
|
||||||
|
|
||||||
|
Init_Controller(); //Only processed on first run
|
||||||
|
SetupZones();
|
||||||
|
|
||||||
|
uint8_t temp_mode = cmmm711->GetMode();
|
||||||
|
for(std::size_t mode_index = 0; mode_index < modes.size(); mode_index++)
|
||||||
|
{
|
||||||
|
if (modes[mode_index].value == temp_mode)
|
||||||
|
{
|
||||||
|
active_mode = mode_index;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (modes[active_mode].color_mode == MODE_COLORS_MODE_SPECIFIC)
|
||||||
|
{
|
||||||
|
modes[active_mode].colors[0] = ToRGBColor(cmmm711->GetLedRed(),cmmm711->GetLedGreen(),cmmm711->GetLedBlue());
|
||||||
|
}
|
||||||
|
colors[0] = cmmm711->GetWheelColour();
|
||||||
|
colors[1] = cmmm711->GetLogoColour();
|
||||||
|
}
|
||||||
|
|
||||||
|
RGBController_CMMM711Controller::~RGBController_CMMM711Controller()
|
||||||
|
{
|
||||||
|
delete cmmm711;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RGBController_CMMM711Controller::Init_Controller()
|
||||||
|
{
|
||||||
|
zone mouse_zone;
|
||||||
|
mouse_zone.name = "Master Mouse 711";
|
||||||
|
mouse_zone.type = ZONE_TYPE_LINEAR;
|
||||||
|
mouse_zone.leds_min = 2;
|
||||||
|
mouse_zone.leds_max = 2;
|
||||||
|
mouse_zone.leds_count = 2;
|
||||||
|
mouse_zone.matrix_map = NULL;
|
||||||
|
zones.push_back(mouse_zone);
|
||||||
|
|
||||||
|
led wheel_led;
|
||||||
|
wheel_led.name = "Scroll Wheel LED";
|
||||||
|
wheel_led.value = 0;
|
||||||
|
leds.push_back(wheel_led);
|
||||||
|
|
||||||
|
led logo_led;
|
||||||
|
logo_led.name = "Logo LED";
|
||||||
|
logo_led.value = 1;
|
||||||
|
leds.push_back(logo_led);
|
||||||
|
}
|
||||||
|
|
||||||
|
void RGBController_CMMM711Controller::SetupZones()
|
||||||
|
{
|
||||||
|
SetupColors();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RGBController_CMMM711Controller::ResizeZone(int /*zone*/, int /*new_size*/)
|
||||||
|
{
|
||||||
|
/*---------------------------------------------------------*\
|
||||||
|
| This device does not support resizing zones |
|
||||||
|
\*---------------------------------------------------------*/
|
||||||
|
}
|
||||||
|
|
||||||
|
void RGBController_CMMM711Controller::DeviceUpdateLEDs()
|
||||||
|
{
|
||||||
|
cmmm711->SetLedsDirect( colors[0], colors[1] );
|
||||||
|
}
|
||||||
|
|
||||||
|
void RGBController_CMMM711Controller::UpdateZoneLEDs(int /*zone*/)
|
||||||
|
{
|
||||||
|
DeviceUpdateLEDs();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RGBController_CMMM711Controller::UpdateSingleLED(int /*led*/)
|
||||||
|
{
|
||||||
|
DeviceUpdateLEDs();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RGBController_CMMM711Controller::SetCustomMode()
|
||||||
|
{
|
||||||
|
for(std::size_t mode_index = 0; mode_index < modes.size(); mode_index++)
|
||||||
|
{
|
||||||
|
if (modes[mode_index].value == CM_MM711_MODE_CUSTOM)
|
||||||
|
{
|
||||||
|
active_mode = mode_index;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void RGBController_CMMM711Controller::DeviceUpdateMode()
|
||||||
|
{
|
||||||
|
RGBColor colour = 0;
|
||||||
|
|
||||||
|
if (modes[active_mode].value != CM_MM711_MODE_CUSTOM)
|
||||||
|
{
|
||||||
|
if( modes[active_mode].color_mode == MODE_COLORS_MODE_SPECIFIC )
|
||||||
|
{
|
||||||
|
colour = modes[active_mode].colors[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
cmmm711->SendUpdate(modes[active_mode].value, modes[active_mode].speed, colour, modes[active_mode].brightness);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
/*-------------------------------------------------------------------*\
|
||||||
|
| RGBController_CMMM711Controller.h |
|
||||||
|
| |
|
||||||
|
| Driver for Coolermaster MM711 Controller |
|
||||||
|
| |
|
||||||
|
| Chris M (Dr_No) 14th Feb 2021 |
|
||||||
|
| |
|
||||||
|
\*-------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#include "RGBController.h"
|
||||||
|
#include "CMMM711Controller.h"
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#define CM_MM_ARGB_BRIGHTNESS_MIN 0x00
|
||||||
|
#define CM_MM_ARGB_BRIGHTNESS_MAX_DEFAULT 0xFF
|
||||||
|
#define CM_MM_ARGB_BRIGHTNESS_MAX_SPECTRUM 0x7F
|
||||||
|
|
||||||
|
class RGBController_CMMM711Controller : public RGBController
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
RGBController_CMMM711Controller(CMMM711Controller* cmargb_ptr);
|
||||||
|
~RGBController_CMMM711Controller();
|
||||||
|
|
||||||
|
void SetupZones();
|
||||||
|
void ResizeZone(int zone, int new_size);
|
||||||
|
|
||||||
|
void DeviceUpdateLEDs();
|
||||||
|
void UpdateZoneLEDs(int zone);
|
||||||
|
void UpdateSingleLED(int led);
|
||||||
|
|
||||||
|
void SetCustomMode();
|
||||||
|
void DeviceUpdateMode();
|
||||||
|
private:
|
||||||
|
void Init_Controller();
|
||||||
|
int GetDeviceMode();
|
||||||
|
|
||||||
|
CMMM711Controller* cmmm711;
|
||||||
|
};
|
||||||
20
OpenRGB.pro
20
OpenRGB.pro
|
|
@ -214,17 +214,19 @@ HEADERS +=
|
||||||
Controllers/BlinkyTapeController/BlinkyTapeController.h \
|
Controllers/BlinkyTapeController/BlinkyTapeController.h \
|
||||||
Controllers/BlinkyTapeController/RGBController_BlinkyTape.h \
|
Controllers/BlinkyTapeController/RGBController_BlinkyTape.h \
|
||||||
Controllers/CoolerMasterController/CMARGBcontroller.h \
|
Controllers/CoolerMasterController/CMARGBcontroller.h \
|
||||||
|
Controllers/CoolerMasterController/CMMKController.h \
|
||||||
|
Controllers/CoolerMasterController/CMMM711Controller.h \
|
||||||
Controllers/CoolerMasterController/CMMP750Controller.h \
|
Controllers/CoolerMasterController/CMMP750Controller.h \
|
||||||
Controllers/CoolerMasterController/CMSmallARGBController.h \
|
|
||||||
Controllers/CoolerMasterController/CMR6000Controller.h \
|
Controllers/CoolerMasterController/CMR6000Controller.h \
|
||||||
Controllers/CoolerMasterController/CMRGBController.h \
|
Controllers/CoolerMasterController/CMRGBController.h \
|
||||||
Controllers/CoolerMasterController/CMMKController.h \
|
Controllers/CoolerMasterController/CMSmallARGBController.h \
|
||||||
Controllers/CoolerMasterController/RGBController_CMARGBController.h \
|
Controllers/CoolerMasterController/RGBController_CMARGBController.h \
|
||||||
|
Controllers/CoolerMasterController/RGBController_CMMKController.h \
|
||||||
|
Controllers/CoolerMasterController/RGBController_CMMM711Controller.h \
|
||||||
Controllers/CoolerMasterController/RGBController_CMMP750Controller.h \
|
Controllers/CoolerMasterController/RGBController_CMMP750Controller.h \
|
||||||
Controllers/CoolerMasterController/RGBController_CMSmallARGBController.h \
|
|
||||||
Controllers/CoolerMasterController/RGBController_CMR6000Controller.h \
|
Controllers/CoolerMasterController/RGBController_CMR6000Controller.h \
|
||||||
Controllers/CoolerMasterController/RGBController_CMRGBController.h \
|
Controllers/CoolerMasterController/RGBController_CMRGBController.h \
|
||||||
Controllers/CoolerMasterController/RGBController_CMMKController.h \
|
Controllers/CoolerMasterController/RGBController_CMSmallARGBController.h \
|
||||||
Controllers/CorsairCommanderCoreController/CorsairCommanderCoreController.h \
|
Controllers/CorsairCommanderCoreController/CorsairCommanderCoreController.h \
|
||||||
Controllers/CorsairCommanderCoreController/RGBController_CorsairCommanderCore.h \
|
Controllers/CorsairCommanderCoreController/RGBController_CorsairCommanderCore.h \
|
||||||
Controllers/CorsairDominatorPlatinumController/CorsairDominatorPlatinumController.h \
|
Controllers/CorsairDominatorPlatinumController/CorsairDominatorPlatinumController.h \
|
||||||
|
|
@ -534,18 +536,20 @@ SOURCES +=
|
||||||
Controllers/BlinkyTapeController/BlinkyTapeControllerDetect.cpp \
|
Controllers/BlinkyTapeController/BlinkyTapeControllerDetect.cpp \
|
||||||
Controllers/BlinkyTapeController/RGBController_BlinkyTape.cpp \
|
Controllers/BlinkyTapeController/RGBController_BlinkyTape.cpp \
|
||||||
Controllers/CoolerMasterController/CMARGBcontroller.cpp \
|
Controllers/CoolerMasterController/CMARGBcontroller.cpp \
|
||||||
|
Controllers/CoolerMasterController/CMMKController.cpp \
|
||||||
|
Controllers/CoolerMasterController/CMMM711Controller.cpp \
|
||||||
Controllers/CoolerMasterController/CMMP750Controller.cpp \
|
Controllers/CoolerMasterController/CMMP750Controller.cpp \
|
||||||
Controllers/CoolerMasterController/CMSmallARGBController.cpp \
|
|
||||||
Controllers/CoolerMasterController/CMR6000Controller.cpp \
|
Controllers/CoolerMasterController/CMR6000Controller.cpp \
|
||||||
Controllers/CoolerMasterController/CMRGBController.cpp \
|
Controllers/CoolerMasterController/CMRGBController.cpp \
|
||||||
Controllers/CoolerMasterController/CMMKController.cpp \
|
Controllers/CoolerMasterController/CMSmallARGBController.cpp \
|
||||||
Controllers/CoolerMasterController/CoolerMasterControllerDetect.cpp \
|
Controllers/CoolerMasterController/CoolerMasterControllerDetect.cpp \
|
||||||
Controllers/CoolerMasterController/RGBController_CMARGBController.cpp \
|
Controllers/CoolerMasterController/RGBController_CMARGBController.cpp \
|
||||||
|
Controllers/CoolerMasterController/RGBController_CMMKController.cpp \
|
||||||
|
Controllers/CoolerMasterController/RGBController_CMMM711Controller.cpp \
|
||||||
Controllers/CoolerMasterController/RGBController_CMMP750Controller.cpp \
|
Controllers/CoolerMasterController/RGBController_CMMP750Controller.cpp \
|
||||||
Controllers/CoolerMasterController/RGBController_CMSmallARGBController.cpp \
|
|
||||||
Controllers/CoolerMasterController/RGBController_CMR6000Controller.cpp \
|
Controllers/CoolerMasterController/RGBController_CMR6000Controller.cpp \
|
||||||
Controllers/CoolerMasterController/RGBController_CMRGBController.cpp \
|
Controllers/CoolerMasterController/RGBController_CMRGBController.cpp \
|
||||||
Controllers/CoolerMasterController/RGBController_CMMKController.cpp \
|
Controllers/CoolerMasterController/RGBController_CMSmallARGBController.cpp \
|
||||||
Controllers/CorsairCommanderCoreController/CorsairCommanderCoreController.cpp \
|
Controllers/CorsairCommanderCoreController/CorsairCommanderCoreController.cpp \
|
||||||
Controllers/CorsairCommanderCoreController/CorsairCommanderCoreControllerDetect.cpp \
|
Controllers/CorsairCommanderCoreController/CorsairCommanderCoreControllerDetect.cpp \
|
||||||
Controllers/CorsairCommanderCoreController/RGBController_CorsairCommanderCore.cpp \
|
Controllers/CorsairCommanderCoreController/RGBController_CorsairCommanderCore.cpp \
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue