Store name in LegoDimensionsToypadBaseController to avoid setting it in detector

This commit is contained in:
Adam Honse 2025-08-11 20:31:05 -05:00
parent 0eb34eec25
commit 41eec46fa7
4 changed files with 15 additions and 13 deletions

View file

@ -13,11 +13,11 @@
#include "LegoDimensionsToypadBaseController.h" #include "LegoDimensionsToypadBaseController.h"
#include "StringUtils.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; dev = dev_handle;
location = info.path; location = info.path;
version = ""; name = dev_name;
Activate(); Activate();
} }
@ -32,6 +32,11 @@ std::string LegoDimensionsToypadBaseController::GetDeviceLocation()
return("HID: " + location); return("HID: " + location);
} }
std::string LegoDimensionsToypadBaseController::GetNameString()
{
return(name);
}
std::string LegoDimensionsToypadBaseController::GetSerialString() std::string LegoDimensionsToypadBaseController::GetSerialString()
{ {
wchar_t serial_string[128]; wchar_t serial_string[128];
@ -45,11 +50,6 @@ std::string LegoDimensionsToypadBaseController::GetSerialString()
return(StringUtils::wstring_to_string(serial_string)); return(StringUtils::wstring_to_string(serial_string));
} }
std::string LegoDimensionsToypadBaseController::GetFirmwareVersion()
{
return(version);
}
void LegoDimensionsToypadBaseController::Activate() void LegoDimensionsToypadBaseController::Activate()
{ {
unsigned char usb_buf[LEGO_DIMENSIONS_TOYPAD_BASE_PACKET_LENGTH]; unsigned char usb_buf[LEGO_DIMENSIONS_TOYPAD_BASE_PACKET_LENGTH];

View file

@ -35,12 +35,12 @@ enum
class LegoDimensionsToypadBaseController class LegoDimensionsToypadBaseController
{ {
public: 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(); ~LegoDimensionsToypadBaseController();
std::string GetSerialString();
std::string GetDeviceLocation(); std::string GetDeviceLocation();
std::string GetFirmwareVersion(); std::string GetNameString();
std::string GetSerialString();
void SetDirect(unsigned char zone, RGBColor color); void SetDirect(unsigned char zone, RGBColor color);
void SetMode(unsigned char zone, unsigned char mode_value, uint8_t speed, RGBColor color); void SetMode(unsigned char zone, unsigned char mode_value, uint8_t speed, RGBColor color);
@ -50,6 +50,7 @@ protected:
private: private:
std::string location; std::string location;
std::string name;
std::string version; std::string version;
void Activate(); void Activate();

View file

@ -29,9 +29,9 @@ void DetectLegoDimensionsToypadBaseControllers(hid_device_info* info, const std:
if(dev) if(dev)
{ {
LegoDimensionsToypadBaseController* controller = new LegoDimensionsToypadBaseController(dev, *info); LegoDimensionsToypadBaseController* controller = new LegoDimensionsToypadBaseController(dev, *info, name);
RGBController_LegoDimensionsToypadBase* rgb_controller = new RGBController_LegoDimensionsToypadBase(controller); RGBController_LegoDimensionsToypadBase* rgb_controller = new RGBController_LegoDimensionsToypadBase(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller); ResourceManager::get()->RegisterRGBController(rgb_controller);
} }
} }

View file

@ -27,12 +27,13 @@
RGBController_LegoDimensionsToypadBase::RGBController_LegoDimensionsToypadBase(LegoDimensionsToypadBaseController* controller_ptr) RGBController_LegoDimensionsToypadBase::RGBController_LegoDimensionsToypadBase(LegoDimensionsToypadBaseController* controller_ptr)
{ {
controller = controller_ptr; controller = controller_ptr;
name = controller->GetNameString();
vendor = "Logic3"; vendor = "Logic3";
type = DEVICE_TYPE_LEDSTRIP; type = DEVICE_TYPE_LEDSTRIP;
description = "Lego Dimensions Toypad Base"; description = "Lego Dimensions Toypad Base";
location = controller->GetDeviceLocation(); location = controller->GetDeviceLocation();
serial = controller->GetSerialString(); serial = controller->GetSerialString();
version = controller->GetFirmwareVersion();
mode Direct; mode Direct;
Direct.name = "Direct"; Direct.name = "Direct";