From 41eec46fa7148082fe767782ecb223f4e48f5928 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Mon, 11 Aug 2025 20:31:05 -0500 Subject: [PATCH] Store name in LegoDimensionsToypadBaseController to avoid setting it in detector --- .../LegoDimensionsToypadBaseController.cpp | 14 +++++++------- .../LegoDimensionsToypadBaseController.h | 7 ++++--- .../LegoDimensionsToypadBaseControllerDetect.cpp | 4 ++-- .../RGBController_LegoDimensionsToypadBase.cpp | 3 ++- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseController.cpp b/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseController.cpp index c6ca53b9..cf62f47a 100644 --- a/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseController.cpp +++ b/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseController.cpp @@ -13,11 +13,11 @@ #include "LegoDimensionsToypadBaseController.h" #include "StringUtils.h" -LegoDimensionsToypadBaseController::LegoDimensionsToypadBaseController(hid_device* dev_handle, const hid_device_info& info) +LegoDimensionsToypadBaseController::LegoDimensionsToypadBaseController(hid_device* dev_handle, const hid_device_info& info, std::string dev_name) { dev = dev_handle; location = info.path; - version = ""; + name = dev_name; Activate(); } @@ -32,6 +32,11 @@ std::string LegoDimensionsToypadBaseController::GetDeviceLocation() return("HID: " + location); } +std::string LegoDimensionsToypadBaseController::GetNameString() +{ + return(name); +} + std::string LegoDimensionsToypadBaseController::GetSerialString() { wchar_t serial_string[128]; @@ -45,11 +50,6 @@ std::string LegoDimensionsToypadBaseController::GetSerialString() return(StringUtils::wstring_to_string(serial_string)); } -std::string LegoDimensionsToypadBaseController::GetFirmwareVersion() -{ - return(version); -} - void LegoDimensionsToypadBaseController::Activate() { unsigned char usb_buf[LEGO_DIMENSIONS_TOYPAD_BASE_PACKET_LENGTH]; diff --git a/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseController.h b/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseController.h index 6fcea01e..5f0189ae 100644 --- a/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseController.h +++ b/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseController.h @@ -35,12 +35,12 @@ enum class LegoDimensionsToypadBaseController { public: - LegoDimensionsToypadBaseController(hid_device* dev_handle, const hid_device_info& info); + LegoDimensionsToypadBaseController(hid_device* dev_handle, const hid_device_info& info, std::string dev_name); ~LegoDimensionsToypadBaseController(); - std::string GetSerialString(); std::string GetDeviceLocation(); - std::string GetFirmwareVersion(); + std::string GetNameString(); + std::string GetSerialString(); void SetDirect(unsigned char zone, RGBColor color); void SetMode(unsigned char zone, unsigned char mode_value, uint8_t speed, RGBColor color); @@ -50,6 +50,7 @@ protected: private: std::string location; + std::string name; std::string version; void Activate(); diff --git a/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseControllerDetect.cpp b/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseControllerDetect.cpp index 8037bd52..812a040a 100644 --- a/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseControllerDetect.cpp +++ b/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseControllerDetect.cpp @@ -29,9 +29,9 @@ void DetectLegoDimensionsToypadBaseControllers(hid_device_info* info, const std: if(dev) { - LegoDimensionsToypadBaseController* controller = new LegoDimensionsToypadBaseController(dev, *info); + LegoDimensionsToypadBaseController* controller = new LegoDimensionsToypadBaseController(dev, *info, name); RGBController_LegoDimensionsToypadBase* rgb_controller = new RGBController_LegoDimensionsToypadBase(controller); - rgb_controller->name = name; + ResourceManager::get()->RegisterRGBController(rgb_controller); } } diff --git a/Controllers/LegoDimensionsToypadBaseController/RGBController_LegoDimensionsToypadBase.cpp b/Controllers/LegoDimensionsToypadBaseController/RGBController_LegoDimensionsToypadBase.cpp index b70da0ee..5f7da700 100644 --- a/Controllers/LegoDimensionsToypadBaseController/RGBController_LegoDimensionsToypadBase.cpp +++ b/Controllers/LegoDimensionsToypadBaseController/RGBController_LegoDimensionsToypadBase.cpp @@ -27,12 +27,13 @@ RGBController_LegoDimensionsToypadBase::RGBController_LegoDimensionsToypadBase(LegoDimensionsToypadBaseController* controller_ptr) { controller = controller_ptr; + + name = controller->GetNameString(); vendor = "Logic3"; type = DEVICE_TYPE_LEDSTRIP; description = "Lego Dimensions Toypad Base"; location = controller->GetDeviceLocation(); serial = controller->GetSerialString(); - version = controller->GetFirmwareVersion(); mode Direct; Direct.name = "Direct";