Store name in SkyloongController to avoid setting it in detector

This commit is contained in:
Adam Honse 2025-08-14 20:05:55 -05:00
parent 46d935c1a4
commit 517287117b
4 changed files with 19 additions and 11 deletions

View file

@ -54,7 +54,7 @@ RGBController_SkyloongGK104Pro::RGBController_SkyloongGK104Pro(SkyloongGK104ProC
{ {
controller = controller_ptr; controller = controller_ptr;
name = "Skyloong GK104 Pro"; name = controller->GetDeviceName();
vendor = "Skyloong"; vendor = "Skyloong";
description = "Skyloong GK104 Pro Keyboard"; description = "Skyloong GK104 Pro Keyboard";
location = controller->GetDeviceLocation(); location = controller->GetDeviceLocation();

View file

@ -33,9 +33,9 @@ void DetectSkyloongGK104Pro(hid_device_info* info, const std::string& name)
hid_device* dev = hid_open_path(info->path); hid_device* dev = hid_open_path(info->path);
if(dev) if(dev)
{ {
SkyloongGK104ProController* controller = new SkyloongGK104ProController(dev, info->path); SkyloongGK104ProController* controller = new SkyloongGK104ProController(dev, info->path, name);
RGBController_SkyloongGK104Pro* rgb_controller = new RGBController_SkyloongGK104Pro(controller); RGBController_SkyloongGK104Pro* rgb_controller = new RGBController_SkyloongGK104Pro(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller); ResourceManager::get()->RegisterRGBController(rgb_controller);
} }
} }

View file

@ -21,10 +21,11 @@ enum command
le_define = 0x1A le_define = 0x1A
}; };
SkyloongGK104ProController::SkyloongGK104ProController(hid_device* dev_handle, const char* path) SkyloongGK104ProController::SkyloongGK104ProController(hid_device* dev_handle, const char* path, std::string dev_name)
{ {
dev = dev_handle; dev = dev_handle;
location = path; location = path;
name = dev_name;
SendCommand(command::ping, SUBCOMMAND_NONE); SendCommand(command::ping, SUBCOMMAND_NONE);
SendCommand(command::mode, MODE_ONLINE); SendCommand(command::mode, MODE_ONLINE);
@ -42,6 +43,11 @@ std::string SkyloongGK104ProController::GetDeviceLocation()
return("HID: " + location); return("HID: " + location);
} }
std::string SkyloongGK104ProController::GetDeviceName()
{
return(name);
}
void SkyloongGK104ProController::SendCommand(char command, char sub_command) void SkyloongGK104ProController::SendCommand(char command, char sub_command)
{ {
unsigned char buf[PACKET_SIZE]; unsigned char buf[PACKET_SIZE];

View file

@ -32,10 +32,11 @@
class SkyloongGK104ProController class SkyloongGK104ProController
{ {
public: public:
SkyloongGK104ProController(hid_device* dev_handle, const char* path); SkyloongGK104ProController(hid_device* dev_handle, const char* path, std::string dev_name);
~SkyloongGK104ProController(); ~SkyloongGK104ProController();
std::string GetDeviceLocation(); std::string GetDeviceLocation();
std::string GetDeviceName();
void Ping(); void Ping();
void SetMode(int mode); void SetMode(int mode);
@ -43,10 +44,11 @@ public:
void SendColorPacket(std::vector<RGBColor> colors, std::vector<led> *leds, int brightness); void SendColorPacket(std::vector<RGBColor> colors, std::vector<led> *leds, int brightness);
private: private:
hid_device* dev; hid_device* dev;
std::string location; std::string location;
std::string name;
uint16_t Crc16CcittFalse(const uint8_t *buffer, uint16_t size);
void SetLEDefine(int address, unsigned char *le_data, int le_data_length); uint16_t Crc16CcittFalse(const uint8_t *buffer, uint16_t size);
void SaveLEDefine(); void SetLEDefine(int address, unsigned char *le_data, int le_data_length);
void SaveLEDefine();
}; };