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 "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];

View file

@ -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();

View file

@ -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);
}
}

View file

@ -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";