Store name in RoccatControllers to avoid setting it in detectors

This commit is contained in:
Adam Honse 2025-08-16 02:07:11 -05:00
parent c2e0bd496f
commit 079e344c5a
34 changed files with 333 additions and 304 deletions

View file

@ -24,16 +24,15 @@
RGBController_RoccatKoneXP::RGBController_RoccatKoneXP(RoccatKoneXPController* controller_ptr)
{
controller = controller_ptr;
name = "Roccat Kone XP";
vendor = "Roccat";
type = DEVICE_TYPE_MOUSE;
description = "Roccat Kone XP Mouse";
version = controller->GetVersion();
location = controller->GetLocation();
serial = controller->GetSerial();
controller = controller_ptr;
name = controller->GetName();
vendor = "Roccat";
type = DEVICE_TYPE_MOUSE;
description = "Roccat Kone XP Mouse Device";
version = controller->GetVersion();
location = controller->GetLocation();
serial = controller->GetSerial();
mode Direct;
Direct.name = "Direct";
@ -43,10 +42,10 @@ RGBController_RoccatKoneXP::RGBController_RoccatKoneXP(RoccatKoneXPController* c
modes.push_back(Direct);
mode Off;
Off.name = "Off";
Off.value = ROCCAT_KONE_XP_MODE_OFF;
Off.flags = MODE_FLAG_AUTOMATIC_SAVE;
Off.color_mode = MODE_COLORS_NONE;
Off.name = "Off";
Off.value = ROCCAT_KONE_XP_MODE_OFF;
Off.flags = MODE_FLAG_AUTOMATIC_SAVE;
Off.color_mode = MODE_COLORS_NONE;
modes.push_back(Off);
mode Static;
@ -112,27 +111,26 @@ RGBController_RoccatKoneXP::RGBController_RoccatKoneXP(RoccatKoneXPController* c
modes.push_back(Heartbeat);
mode Photon;
Photon.name = "Photon FX";
Photon.value = ROCCAT_KONE_XP_MODE_PHOTON_FX;
Photon.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS;
Photon.color_mode = MODE_COLORS_NONE;
Photon.brightness = ROCCAT_KONE_XP_BRIGHTNESS_DEFAULT;
Photon.brightness_min = ROCCAT_KONE_XP_BRIGHTNESS_MIN;
Photon.brightness_max = ROCCAT_KONE_XP_BRIGHTNESS_MAX;
Photon.name = "Photon FX";
Photon.value = ROCCAT_KONE_XP_MODE_PHOTON_FX;
Photon.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS;
Photon.color_mode = MODE_COLORS_NONE;
Photon.brightness = ROCCAT_KONE_XP_BRIGHTNESS_DEFAULT;
Photon.brightness_min = ROCCAT_KONE_XP_BRIGHTNESS_MIN;
Photon.brightness_max = ROCCAT_KONE_XP_BRIGHTNESS_MAX;
modes.push_back(Photon);
/*---------------------------------------------------------------------*\
| This is the default mode for software modes, while swarm isn't active |
\*---------------------------------------------------------------------*/
mode Default;
Default.name = "Default";
Default.value = ROCCAT_KONE_XP_MODE_DEFAULT;
Default.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS;
Default.color_mode = MODE_COLORS_NONE;
Default.brightness = ROCCAT_KONE_XP_BRIGHTNESS_DEFAULT;
Default.brightness_min = ROCCAT_KONE_XP_BRIGHTNESS_MIN;
Default.brightness_max = ROCCAT_KONE_XP_BRIGHTNESS_MAX;
Default.name = "Default";
Default.value = ROCCAT_KONE_XP_MODE_DEFAULT;
Default.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS;
Default.color_mode = MODE_COLORS_NONE;
Default.brightness = ROCCAT_KONE_XP_BRIGHTNESS_DEFAULT;
Default.brightness_min = ROCCAT_KONE_XP_BRIGHTNESS_MIN;
Default.brightness_max = ROCCAT_KONE_XP_BRIGHTNESS_MAX;
modes.push_back(Default);
SetupZones();

View file

@ -16,10 +16,11 @@
#include "RoccatKoneXPController.h"
#include "StringUtils.h"
RoccatKoneXPController::RoccatKoneXPController(hid_device* dev_handle, char *path)
RoccatKoneXPController::RoccatKoneXPController(hid_device* dev_handle, char *path, std::string dev_name)
{
dev = dev_handle;
location = path;
dev = dev_handle;
location = path;
name = dev_name;
}
RoccatKoneXPController::~RoccatKoneXPController()
@ -27,6 +28,30 @@ RoccatKoneXPController::~RoccatKoneXPController()
hid_close(dev);
}
std::string RoccatKoneXPController::GetLocation()
{
return("HID: " + location);
}
std::string RoccatKoneXPController::GetName()
{
return(name);
}
std::string RoccatKoneXPController::GetSerial()
{
wchar_t serial_string[128];
int ret = hid_get_serial_number_string(dev, serial_string, 128);
if(ret != 0)
{
return("");
}
return(StringUtils::wstring_to_string(serial_string));
}
std::string RoccatKoneXPController::GetVersion()
{
uint8_t buf[9] = { 0x09 };
@ -44,25 +69,6 @@ std::string RoccatKoneXPController::GetVersion()
return std::string(version);
}
std::string RoccatKoneXPController::GetSerial()
{
wchar_t serial_string[128];
int ret = hid_get_serial_number_string(dev, serial_string, 128);
if(ret != 0)
{
return("");
}
return(StringUtils::wstring_to_string(serial_string));
}
std::string RoccatKoneXPController::GetLocation()
{
return("HID: " + location);
}
uint8_t RoccatKoneXPController::GetActiveProfile()
{
uint8_t buf[4] = { 0x05 };

View file

@ -78,11 +78,12 @@ struct roccat_kone_xp_mode_struct
class RoccatKoneXPController
{
public:
RoccatKoneXPController(hid_device* dev_handle, char *path);
RoccatKoneXPController(hid_device* dev_handle, char *path, std::string dev_name);
~RoccatKoneXPController();
std::string GetSerial();
std::string GetLocation();
std::string GetName();
std::string GetSerial();
std::string GetVersion();
uint8_t GetActiveProfile();
@ -98,4 +99,5 @@ public:
private:
hid_device* dev;
std::string location;
std::string name;
};