From 517287117be4c6061065389c785dbb0ad2926e95 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Thu, 14 Aug 2025 20:05:55 -0500 Subject: [PATCH] Store name in SkyloongController to avoid setting it in detector --- .../RGBController_SkyloongGK104Pro.cpp | 2 +- .../SkyloongControllerDetect.cpp | 4 ++-- .../SkyloongGK104ProController.cpp | 8 +++++++- .../SkyloongGK104ProController.h | 16 +++++++++------- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Controllers/SkyloongController/RGBController_SkyloongGK104Pro.cpp b/Controllers/SkyloongController/RGBController_SkyloongGK104Pro.cpp index 7598bfb3..725e9eb0 100644 --- a/Controllers/SkyloongController/RGBController_SkyloongGK104Pro.cpp +++ b/Controllers/SkyloongController/RGBController_SkyloongGK104Pro.cpp @@ -54,7 +54,7 @@ RGBController_SkyloongGK104Pro::RGBController_SkyloongGK104Pro(SkyloongGK104ProC { controller = controller_ptr; - name = "Skyloong GK104 Pro"; + name = controller->GetDeviceName(); vendor = "Skyloong"; description = "Skyloong GK104 Pro Keyboard"; location = controller->GetDeviceLocation(); diff --git a/Controllers/SkyloongController/SkyloongControllerDetect.cpp b/Controllers/SkyloongController/SkyloongControllerDetect.cpp index f0674437..464947b7 100644 --- a/Controllers/SkyloongController/SkyloongControllerDetect.cpp +++ b/Controllers/SkyloongController/SkyloongControllerDetect.cpp @@ -33,9 +33,9 @@ void DetectSkyloongGK104Pro(hid_device_info* info, const std::string& name) hid_device* dev = hid_open_path(info->path); 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); - rgb_controller->name = name; + ResourceManager::get()->RegisterRGBController(rgb_controller); } } diff --git a/Controllers/SkyloongController/SkyloongGK104ProController.cpp b/Controllers/SkyloongController/SkyloongGK104ProController.cpp index 69335b24..d471d0ea 100644 --- a/Controllers/SkyloongController/SkyloongGK104ProController.cpp +++ b/Controllers/SkyloongController/SkyloongGK104ProController.cpp @@ -21,10 +21,11 @@ enum command 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; location = path; + name = dev_name; SendCommand(command::ping, SUBCOMMAND_NONE); SendCommand(command::mode, MODE_ONLINE); @@ -42,6 +43,11 @@ std::string SkyloongGK104ProController::GetDeviceLocation() return("HID: " + location); } +std::string SkyloongGK104ProController::GetDeviceName() +{ + return(name); +} + void SkyloongGK104ProController::SendCommand(char command, char sub_command) { unsigned char buf[PACKET_SIZE]; diff --git a/Controllers/SkyloongController/SkyloongGK104ProController.h b/Controllers/SkyloongController/SkyloongGK104ProController.h index c5ab69c9..796fbb3e 100644 --- a/Controllers/SkyloongController/SkyloongGK104ProController.h +++ b/Controllers/SkyloongController/SkyloongGK104ProController.h @@ -32,10 +32,11 @@ class SkyloongGK104ProController { public: - SkyloongGK104ProController(hid_device* dev_handle, const char* path); + SkyloongGK104ProController(hid_device* dev_handle, const char* path, std::string dev_name); ~SkyloongGK104ProController(); std::string GetDeviceLocation(); + std::string GetDeviceName(); void Ping(); void SetMode(int mode); @@ -43,10 +44,11 @@ public: void SendColorPacket(std::vector colors, std::vector *leds, int brightness); private: - hid_device* dev; - std::string location; - - uint16_t Crc16CcittFalse(const uint8_t *buffer, uint16_t size); - void SetLEDefine(int address, unsigned char *le_data, int le_data_length); - void SaveLEDefine(); + hid_device* dev; + 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); + void SaveLEDefine(); };