From 9c26f79ca6d763d58d75cf9c9cf17209eba564d6 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Fri, 1 Aug 2025 11:35:38 -0500 Subject: [PATCH] Store name in BloodyMouseController to avoid setting it in detector --- Controllers/A4TechController/A4Tech_Detector.cpp | 3 +-- .../BloodyMouseController/BloodyMouseController.cpp | 8 +++++++- .../BloodyMouseController/BloodyMouseController.h | 4 +++- .../BloodyMouseController/RGBController_BloodyMouse.cpp | 1 + 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Controllers/A4TechController/A4Tech_Detector.cpp b/Controllers/A4TechController/A4Tech_Detector.cpp index 8573e683..30d69c26 100644 --- a/Controllers/A4TechController/A4Tech_Detector.cpp +++ b/Controllers/A4TechController/A4Tech_Detector.cpp @@ -33,9 +33,8 @@ void DetectA4TechMouseControllers(hid_device_info* info, const std::string& name if(dev) { - BloodyMouseController* controller = new BloodyMouseController(dev, info->path, info->product_id); + BloodyMouseController* controller = new BloodyMouseController(dev, info->path, info->product_id, name); RGBController_BloodyMouse* rgb_controller = new RGBController_BloodyMouse(controller); - rgb_controller->name = name; ResourceManager::get()->RegisterRGBController(rgb_controller); } diff --git a/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.cpp b/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.cpp index cd271e0b..9091b37c 100644 --- a/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.cpp +++ b/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.cpp @@ -12,11 +12,12 @@ #include "BloodyMouseController.h" #include "StringUtils.h" -BloodyMouseController::BloodyMouseController(hid_device* dev_handle, const char* path, uint16_t product_id) +BloodyMouseController::BloodyMouseController(hid_device* dev_handle, const char* path, uint16_t product_id, std::string dev_name) { dev = dev_handle; location = path; pid = product_id; + name = dev_name; InitDevice(); } @@ -49,6 +50,11 @@ std::string BloodyMouseController::GetLocation() return("HID: " + location); } +std::string BloodyMouseController::GetName() +{ + return(name); +} + void BloodyMouseController::InitDevice() { uint8_t buffer[BLOODYMOUSE_WRITE_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00 }; diff --git a/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.h b/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.h index c6b4387b..de162415 100644 --- a/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.h +++ b/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.h @@ -50,18 +50,20 @@ enum class BloodyMouseController { public: - BloodyMouseController(hid_device* dev_handle, const char* path, uint16_t product_id); + BloodyMouseController(hid_device* dev_handle, const char* path, uint16_t product_id, std::string dev_name); ~BloodyMouseController(); uint16_t GetPid(); std::string GetSerial(); std::string GetLocation(); + std::string GetName(); void SetLedsDirect(std::vector colors); private: uint16_t pid; std::string location; + std::string name; hid_device* dev; void InitDevice(); diff --git a/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.cpp b/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.cpp index f344fba1..d25a7dd4 100644 --- a/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.cpp +++ b/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.cpp @@ -71,6 +71,7 @@ RGBController_BloodyMouse::RGBController_BloodyMouse(BloodyMouseController *cont type = DEVICE_TYPE_MOUSE; } + name = controller->GetName(); vendor = "Bloody"; description = "Controller compatible with the Bloody W60 Pro and MP 50RS"; serial = controller->GetSerial();