Store name in HyperXMousematControllers to avoid setting it in detector

This commit is contained in:
Adam Honse 2025-08-11 17:18:29 -05:00
parent 12f90a67f9
commit 0269cdd068
4 changed files with 22 additions and 20 deletions

View file

@ -13,11 +13,12 @@
#include "HyperXMousematController.h"
#include "StringUtils.h"
HyperXMousematController::HyperXMousematController(hidapi_wrapper hid_wrapper, hid_device* dev_handle, const char* path)
HyperXMousematController::HyperXMousematController(hidapi_wrapper hid_wrapper, hid_device* dev_handle, const char* path, std::string dev_name)
{
wrapper = hid_wrapper;
dev = dev_handle;
location = path;
name = dev_name;
}
HyperXMousematController::~HyperXMousematController()
@ -30,6 +31,11 @@ std::string HyperXMousematController::GetDeviceLocation()
return("HID " + location);
}
std::string HyperXMousematController::GetNameString()
{
return(name);
}
std::string HyperXMousematController::GetSerialString()
{
wchar_t serial_string[128];

View file

@ -18,10 +18,11 @@
class HyperXMousematController
{
public:
HyperXMousematController(hidapi_wrapper hid_wrapper, hid_device* dev_handle, const char* path);
HyperXMousematController(hidapi_wrapper hid_wrapper, hid_device* dev_handle, const char* path, std::string dev_name);
~HyperXMousematController();
std::string GetDeviceLocation();
std::string GetNameString();
std::string GetSerialString();
void SendDirect
@ -33,4 +34,5 @@ private:
hidapi_wrapper wrapper;
hid_device* dev;
std::string location;
std::string name;
};

View file

@ -41,9 +41,8 @@ void DetectHyperXMousematControllers(hidapi_wrapper wrapper, hid_device_info* in
int first_zone_leds_count = info->product_id == HYPERX_FURY_A_XL_PID ? 2 : 15;
int second_zone_leds_count = info->product_id == HYPERX_FURY_A_XL_PID ? 0 : 5;
HyperXMousematController* controller = new HyperXMousematController(wrapper, dev, info->path);
HyperXMousematController* controller = new HyperXMousematController(wrapper, dev, info->path, name);
RGBController_HyperXMousemat* rgb_controller = new RGBController_HyperXMousemat(controller, first_zone_leds_count, second_zone_leds_count);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}

View file

@ -24,18 +24,13 @@ using namespace std::chrono_literals;
@comment
\*-------------------------------------------------------------------*/
RGBController_HyperXMousemat::RGBController_HyperXMousemat
(
HyperXMousematController* controller_ptr,
unsigned int first_zone_leds_count_arg,
unsigned int second_zone_leds_count_arg
)
RGBController_HyperXMousemat::RGBController_HyperXMousemat(HyperXMousematController* controller_ptr, unsigned int first_zone_leds_count_arg, unsigned int second_zone_leds_count_arg)
{
controller = controller_ptr;
first_zone_leds_count = first_zone_leds_count_arg;
second_zone_leds_count = second_zone_leds_count_arg;
name = "HyperX Mousemat Device";
name = controller->GetNameString();
vendor = "HyperX";
type = DEVICE_TYPE_MOUSEMAT;
description = "HyperX Mousemat Device";