Store name in CorsairPeripheralControllers to avoid setting it in detectors

This commit is contained in:
Adam Honse 2025-08-15 11:40:20 -05:00
parent a528db1604
commit 59c2ca2052
9 changed files with 40 additions and 45 deletions

View file

@ -38,10 +38,11 @@ static const unsigned char filler[] =
0x6D };
CorsairK55RGBPROXTController::CorsairK55RGBPROXTController(hid_device* dev_handle, const char* path)
CorsairK55RGBPROXTController::CorsairK55RGBPROXTController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
LightingControl();
}
@ -56,9 +57,9 @@ std::string CorsairK55RGBPROXTController::GetDeviceLocation()
return("HID: " + location);
}
std::string CorsairK55RGBPROXTController::GetFirmwareString()
std::string CorsairK55RGBPROXTController::GetNameString()
{
return "";
return(name);
}
std::string CorsairK55RGBPROXTController::GetSerialString()

View file

@ -16,10 +16,11 @@
class CorsairK55RGBPROXTController
{
public:
CorsairK55RGBPROXTController(hid_device* dev_handle, const char* path);
CorsairK55RGBPROXTController(hid_device* dev_handle, const char* path, std::string dev_name);
~CorsairK55RGBPROXTController();
std::string GetDeviceLocation();
std::string GetFirmwareString();
std::string GetNameString();
std::string GetSerialString();
void SetLEDs(std::vector<RGBColor> colors);
@ -79,8 +80,8 @@ public:
private:
hid_device* dev;
std::string firmware_version;
std::string location;
std::string name;
void LightingControl();
};

View file

@ -11,10 +11,11 @@
#include "LogManager.h"
#include "StringUtils.h"
CorsairK65MiniController::CorsairK65MiniController(hid_device* dev_handle, const char* path)
CorsairK65MiniController::CorsairK65MiniController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
LightingControl();
}
@ -29,9 +30,9 @@ std::string CorsairK65MiniController::GetDeviceLocation()
return("HID: " + location);
}
std::string CorsairK65MiniController::GetFirmwareString()
std::string CorsairK65MiniController::GetName()
{
return "";
return(name);
}
std::string CorsairK65MiniController::GetSerialString()

View file

@ -19,11 +19,10 @@
class CorsairK65MiniController
{
public:
CorsairK65MiniController(hid_device* dev_handle, const char* path);
CorsairK65MiniController(hid_device* dev_handle, const char* path, std::string dev_name);
~CorsairK65MiniController();
std::string GetDeviceLocation();
std::string GetFirmwareString();
std::string GetName();
std::string GetSerialString();
void SetLEDs(std::vector<RGBColor> colors, std::vector<unsigned int> positions);
@ -31,8 +30,8 @@ public:
private:
hid_device* dev;
std::string firmware_version;
std::string location;
std::string name;
void LightingControl();
};

View file

@ -66,10 +66,11 @@ static unsigned int key_mapping_k70_mk2_plat_iso[] = { 0x3f, 0x41, 0x42, 0x50, 0
#define CORSAIR_PERIPHERAL_CONTROLLER_NAME "Corsair peripheral"
CorsairPeripheralController::CorsairPeripheralController(hid_device* dev_handle, const char* path)
CorsairPeripheralController::CorsairPeripheralController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
ReadFirmwareInfo();
@ -332,11 +333,6 @@ void CorsairPeripheralController::SetLEDsKeyboardLimited(std::vector<RGBColor> c
SubmitKeyboardLimitedColors(216);
}
void CorsairPeripheralController::SetName(std::string device_name)
{
name = device_name;
}
void CorsairPeripheralController::SwitchMode(bool software)
{
if(software)

View file

@ -94,7 +94,7 @@ enum
class CorsairPeripheralController
{
public:
CorsairPeripheralController(hid_device* dev_handle, const char* path);
CorsairPeripheralController(hid_device* dev_handle, const char* path, std::string dev_name);
~CorsairPeripheralController();
int GetLogicalLayout();
@ -110,7 +110,6 @@ public:
void SetLEDsKeyboardLimited(std::vector<RGBColor> colors);
void SetLEDsMouse(std::vector<RGBColor> colors);
void SetLEDsMousemat(std::vector<RGBColor> colors);
void SetName(std::string device_name);
void SetHardwareMode
(
int mode_value,

View file

@ -112,9 +112,9 @@ void DetectCorsairK55RGBPROXTControllers(hid_device_info* info, const std::strin
if(dev)
{
CorsairK55RGBPROXTController* controller = new CorsairK55RGBPROXTController(dev, info->path);
CorsairK55RGBPROXTController* controller = new CorsairK55RGBPROXTController(dev, info->path, name);
RGBController_CorsairK55RGBPROXT* rgb_controller = new RGBController_CorsairK55RGBPROXT(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
} /* DetectCorsairK55RGBPROXTControllers() */
@ -125,9 +125,9 @@ void DetectCorsairK65MiniControllers(hid_device_info* info, const std::string& n
if(dev)
{
CorsairK65MiniController* controller = new CorsairK65MiniController(dev, info->path);
CorsairK65MiniController* controller = new CorsairK65MiniController(dev, info->path, name);
RGBController_CorsairK65Mini* rgb_controller = new RGBController_CorsairK65Mini(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
} /* DetectCorsairK65MiniControllers() */
@ -147,8 +147,7 @@ void DetectCorsairPeripheralControllers(hid_device_info* info, const std::string
{
LOG_DEBUG("[%s] Device opened. VID/PID %02X:%02X", CORSAIR_PERIPHERAL_CONTROLLER_NAME, info->vendor_id , info->product_id);
CorsairPeripheralController* controller = new CorsairPeripheralController(dev, info->path);
controller->SetName(name);
CorsairPeripheralController* controller = new CorsairPeripheralController(dev, info->path, name);
if(controller->GetDeviceType() != DEVICE_TYPE_UNKNOWN)
{

View file

@ -202,14 +202,14 @@ std::vector<std::string> key_names =
RGBController_CorsairK55RGBPROXT::RGBController_CorsairK55RGBPROXT(CorsairK55RGBPROXTController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
vendor = "Corsair";
description = "Corsair K55 RGB PRO XT Keyboard Device";
type = DEVICE_TYPE_KEYBOARD;
version = controller->GetFirmwareString();
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
name = controller->GetNameString();
vendor = "Corsair";
description = "Corsair K55 RGB PRO XT Keyboard Device";
type = DEVICE_TYPE_KEYBOARD;
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";

View file

@ -136,21 +136,20 @@ std::vector<std::tuple<unsigned int, std::string>> keys =
RGBController_CorsairK65Mini::RGBController_CorsairK65Mini(CorsairK65MiniController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "Corsair K65 Mini Keyboard Device";
vendor = "Corsair";
description = name;
type = DEVICE_TYPE_KEYBOARD;
version = controller->GetFirmwareString();
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
name = controller->GetName();
vendor = "Corsair";
description = "Corsair K65 Mini Keyboard Device";
type = DEVICE_TYPE_KEYBOARD;
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";
Direct.value = 0;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
Direct.name = "Direct";
Direct.value = 0;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
SetupZones();