Store name in IonicoController to avoid setting it in detector

This commit is contained in:
Adam Honse 2025-08-11 18:07:13 -05:00
parent 0bdf600409
commit ca73941e5d
4 changed files with 52 additions and 45 deletions

View file

@ -12,11 +12,12 @@
#include <string.h>
#include "IonicoController.h"
IonicoController::IonicoController(hid_device* dev_handle, const hid_device_info& info, const unsigned short pid)
IonicoController::IonicoController(hid_device* dev_handle, const hid_device_info& info, const unsigned short pid, std::string dev_name)
{
dev = dev_handle;
location = info.path;
usb_pid = pid;
name = dev_name;
}
IonicoController::~IonicoController()
@ -29,6 +30,11 @@ std::string IonicoController::GetDeviceLocation()
return("HID: " + location);
}
std::string IonicoController::GetDeviceName()
{
return(name);
}
uint16_t IonicoController::GetUSBPID()
{
return(usb_pid);

View file

@ -41,10 +41,11 @@ enum
class IonicoController
{
public:
IonicoController(hid_device* dev_handle, const hid_device_info& info, const unsigned short pid);
IonicoController(hid_device* dev_handle, const hid_device_info& info, const unsigned short pid, std::string dev_name);
~IonicoController();
std::string GetDeviceLocation();
std::string GetDeviceName();
void SetMode(uint8_t mode_value, uint8_t brightness, uint8_t speed);
void SetColors(int device, std::vector<RGBColor> array_colors, bool is_mode);
@ -55,7 +56,7 @@ class IonicoController
private:
hid_device* dev;
std::string location;
std::string name;
std::string serial_number;
std::string version;
uint16_t usb_pid;
};

View file

@ -34,9 +34,8 @@ void DetectIonicoControllers(hid_device_info* info, const std::string& name)
if(dev)
{
IonicoController* controller = new IonicoController(dev, *info, info->product_id);
IonicoController* controller = new IonicoController(dev, *info, info->product_id, name);
RGBController_Ionico* rgb_controller = new RGBController_Ionico(controller);
rgb_controller->name = name;
if(info->product_id == IONICO_KB_PID)
{

View file

@ -26,7 +26,8 @@
RGBController_Ionico::RGBController_Ionico(IonicoController* controller_ptr)
{
controller = controller_ptr;
name = "Ionico";
name = controller->GetDeviceName();
vendor = "Pcspecialist";
description = name;
location = controller->GetDeviceLocation();