Store name in HyperXMouseControllers to avoid setting it in detectors

This commit is contained in:
Adam Honse 2025-08-10 21:17:20 -05:00
parent 0c0ffe7f5c
commit ca554d9ef6
16 changed files with 148 additions and 121 deletions

View file

@ -43,9 +43,8 @@ void DetectHyperXPulsefireSurgeControllers(hid_device_info* info, const std::str
if(dev)
{
HyperXPulsefireSurgeController* controller = new HyperXPulsefireSurgeController(dev, info->path);
HyperXPulsefireSurgeController* controller = new HyperXPulsefireSurgeController(dev, info->path, name);
RGBController_HyperXPulsefireSurge* rgb_controller = new RGBController_HyperXPulsefireSurge(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
@ -57,9 +56,8 @@ void DetectHyperXPulsefireFPSProControllers(hid_device_info* info, const std::st
if(dev)
{
HyperXPulsefireFPSProController* controller = new HyperXPulsefireFPSProController(dev, info->path);
HyperXPulsefireFPSProController* controller = new HyperXPulsefireFPSProController(dev, info->path, name);
RGBController_HyperXPulsefireFPSPro* rgb_controller = new RGBController_HyperXPulsefireFPSPro(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
@ -71,9 +69,8 @@ void DetectHyperXPulsefireHasteControllers(hid_device_info* info, const std::str
if(dev)
{
HyperXPulsefireHasteController* controller = new HyperXPulsefireHasteController(dev, info->path);
HyperXPulsefireHasteController* controller = new HyperXPulsefireHasteController(dev, info->path, name);
RGBController_HyperXPulsefireHaste* rgb_controller = new RGBController_HyperXPulsefireHaste(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
@ -85,9 +82,8 @@ void DetectHyperXPulsefireDartControllers(hid_device_info* info, const std::stri
if(dev)
{
HyperXPulsefireDartController* controller = new HyperXPulsefireDartController(dev, info->path);
HyperXPulsefireDartController* controller = new HyperXPulsefireDartController(dev, info->path, name);
RGBController_HyperXPulsefireDart* rgb_controller = new RGBController_HyperXPulsefireDart(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
@ -99,9 +95,8 @@ void DetectHyperXPulsefireRaidControllers(hid_device_info* info, const std::stri
if(dev)
{
HyperXPulsefireRaidController* controller = new HyperXPulsefireRaidController(dev, *info);
HyperXPulsefireRaidController* controller = new HyperXPulsefireRaidController(dev, *info, name);
RGBController_HyperXPulsefireRaid* rgb_controller = new RGBController_HyperXPulsefireRaid(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}

View file

@ -13,10 +13,11 @@
#include "HyperXPulsefireDartController.h"
#include "StringUtils.h"
HyperXPulsefireDartController::HyperXPulsefireDartController(hid_device* dev_handle, const char* path)
HyperXPulsefireDartController::HyperXPulsefireDartController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
}
HyperXPulsefireDartController::~HyperXPulsefireDartController()
@ -29,6 +30,11 @@ std::string HyperXPulsefireDartController::GetDeviceLocation()
return("HID: " + location);
}
std::string HyperXPulsefireDartController::GetNameString()
{
return(name);
}
std::string HyperXPulsefireDartController::GetSerialString()
{
wchar_t serial_string[128];

View file

@ -41,10 +41,11 @@ enum
class HyperXPulsefireDartController
{
public:
HyperXPulsefireDartController(hid_device* dev_handle, const char* path);
HyperXPulsefireDartController(hid_device* dev_handle, const char* path, std::string dev_name);
~HyperXPulsefireDartController();
std::string GetDeviceLocation();
std::string GetNameString();
std::string GetSerialString();
void SendDirect
@ -61,4 +62,5 @@ public:
private:
hid_device* dev;
std::string location;
std::string name;
};

View file

@ -24,63 +24,63 @@
RGBController_HyperXPulsefireDart::RGBController_HyperXPulsefireDart(HyperXPulsefireDartController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "HyperX Pulsefire Dart Device";
vendor = "HyperX";
type = DEVICE_TYPE_MOUSE;
description = "HyperX Pulsefire Dart Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
name = controller->GetNameString();
vendor = "HyperX";
type = DEVICE_TYPE_MOUSE;
description = "HyperX Pulsefire Dart Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";
Direct.value = HYPERX_PULSEFIRE_DART_MODE_STATIC;
Direct.speed = HYPERX_PULSEFIRE_DART_SPEED_NONE;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Direct.color_mode = MODE_COLORS_PER_LED;
Direct.brightness_min = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MIN;
Direct.brightness_max = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
Direct.brightness = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
Direct.name = "Direct";
Direct.value = HYPERX_PULSEFIRE_DART_MODE_STATIC;
Direct.speed = HYPERX_PULSEFIRE_DART_SPEED_NONE;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Direct.color_mode = MODE_COLORS_PER_LED;
Direct.brightness_min = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MIN;
Direct.brightness_max = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
Direct.brightness = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
modes.push_back(Direct);
mode Breathing;
Breathing.name = "Breathing";
Breathing.value = HYPERX_PULSEFIRE_DART_MODE_BREATHING;
Breathing.speed = HYPERX_PULSEFIRE_DART_SPEED_MED;
Breathing.speed_min = HYPERX_PULSEFIRE_DART_SPEED_MIN;
Breathing.speed_max = HYPERX_PULSEFIRE_DART_SPEED_MAX;
Breathing.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Breathing.color_mode = MODE_COLORS_PER_LED;
Breathing.brightness_min = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MIN;
Breathing.brightness_max = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
Breathing.brightness = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
Breathing.name = "Breathing";
Breathing.value = HYPERX_PULSEFIRE_DART_MODE_BREATHING;
Breathing.speed = HYPERX_PULSEFIRE_DART_SPEED_MED;
Breathing.speed_min = HYPERX_PULSEFIRE_DART_SPEED_MIN;
Breathing.speed_max = HYPERX_PULSEFIRE_DART_SPEED_MAX;
Breathing.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Breathing.color_mode = MODE_COLORS_PER_LED;
Breathing.brightness_min = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MIN;
Breathing.brightness_max = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
Breathing.brightness = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
modes.push_back(Breathing);
mode SpectrumCycle;
SpectrumCycle.name = "Spectrum Cycle";
SpectrumCycle.value = HYPERX_PULSEFIRE_DART_MODE_CYCLE;
SpectrumCycle.speed = HYPERX_PULSEFIRE_DART_SPEED_MED;
SpectrumCycle.speed_min = HYPERX_PULSEFIRE_DART_SPEED_MIN;
SpectrumCycle.speed_max = HYPERX_PULSEFIRE_DART_SPEED_MAX;
SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
SpectrumCycle.color_mode = MODE_COLORS_NONE;
SpectrumCycle.brightness_min = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MIN;
SpectrumCycle.brightness_max = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
SpectrumCycle.brightness = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
SpectrumCycle.name = "Spectrum Cycle";
SpectrumCycle.value = HYPERX_PULSEFIRE_DART_MODE_CYCLE;
SpectrumCycle.speed = HYPERX_PULSEFIRE_DART_SPEED_MED;
SpectrumCycle.speed_min = HYPERX_PULSEFIRE_DART_SPEED_MIN;
SpectrumCycle.speed_max = HYPERX_PULSEFIRE_DART_SPEED_MAX;
SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
SpectrumCycle.color_mode = MODE_COLORS_NONE;
SpectrumCycle.brightness_min = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MIN;
SpectrumCycle.brightness_max = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
SpectrumCycle.brightness = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
modes.push_back(SpectrumCycle);
mode Reactive;
Reactive.name = "Reactive";
Reactive.value = HYPERX_PULSEFIRE_DART_MODE_REACTIVE;
Reactive.speed = HYPERX_PULSEFIRE_DART_SPEED_MED;
Reactive.speed_min = HYPERX_PULSEFIRE_DART_SPEED_MIN;
Reactive.speed_max = HYPERX_PULSEFIRE_DART_SPEED_MAX;
Reactive.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Reactive.color_mode = MODE_COLORS_PER_LED;
Reactive.brightness_min = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MIN;
Reactive.brightness_max = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
Reactive.brightness = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
Reactive.name = "Reactive";
Reactive.value = HYPERX_PULSEFIRE_DART_MODE_REACTIVE;
Reactive.speed = HYPERX_PULSEFIRE_DART_SPEED_MED;
Reactive.speed_min = HYPERX_PULSEFIRE_DART_SPEED_MIN;
Reactive.speed_max = HYPERX_PULSEFIRE_DART_SPEED_MAX;
Reactive.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Reactive.color_mode = MODE_COLORS_PER_LED;
Reactive.brightness_min = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MIN;
Reactive.brightness_max = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
Reactive.brightness = HYPERX_PULSEFIRE_DART_BRIGHTNESS_MAX;
modes.push_back(Reactive);
SetupZones();

View file

@ -13,10 +13,11 @@
#include "HyperXPulsefireFPSProController.h"
#include "StringUtils.h"
HyperXPulsefireFPSProController::HyperXPulsefireFPSProController(hid_device* dev_handle, const char* path)
HyperXPulsefireFPSProController::HyperXPulsefireFPSProController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
}
HyperXPulsefireFPSProController::~HyperXPulsefireFPSProController()
@ -29,6 +30,11 @@ std::string HyperXPulsefireFPSProController::GetDeviceLocation()
return("HID " + location);
}
std::string HyperXPulsefireFPSProController::GetNameString()
{
return(name);
}
std::string HyperXPulsefireFPSProController::GetSerialString()
{
wchar_t serial_string[128];

View file

@ -23,10 +23,11 @@ enum
class HyperXPulsefireFPSProController
{
public:
HyperXPulsefireFPSProController(hid_device* dev_handle, const char* path);
HyperXPulsefireFPSProController(hid_device* dev_handle, const char* path, std::string dev_name);
~HyperXPulsefireFPSProController();
std::string GetDeviceLocation();
std::string GetNameString();
std::string GetSerialString();
void SendDirect
@ -37,4 +38,5 @@ public:
private:
hid_device* dev;
std::string location;
std::string name;
};

View file

@ -26,20 +26,20 @@ using namespace std::chrono_literals;
RGBController_HyperXPulsefireFPSPro::RGBController_HyperXPulsefireFPSPro(HyperXPulsefireFPSProController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "HyperX Pulsefire FPS Pro Device";
vendor = "HyperX";
type = DEVICE_TYPE_MOUSE;
description = "HyperX Pulsefire FPS Pro Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
name = controller->GetNameString();
vendor = "HyperX";
type = DEVICE_TYPE_MOUSE;
description = "HyperX Pulsefire FPS Pro Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";
Direct.value = 0xFFFF;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
Direct.name = "Direct";
Direct.value = 0xFFFF;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
SetupZones();

View file

@ -13,10 +13,11 @@
#include "HyperXPulsefireHasteController.h"
#include "StringUtils.h"
HyperXPulsefireHasteController::HyperXPulsefireHasteController(hid_device* dev_handle, const char* path)
HyperXPulsefireHasteController::HyperXPulsefireHasteController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
}
HyperXPulsefireHasteController::~HyperXPulsefireHasteController()
@ -29,6 +30,11 @@ std::string HyperXPulsefireHasteController::GetDeviceLocation()
return("HID " + location);
}
std::string HyperXPulsefireHasteController::GetNameString()
{
return(name);
}
std::string HyperXPulsefireHasteController::GetSerialString()
{
wchar_t serial_string[128];

View file

@ -24,10 +24,11 @@ enum
class HyperXPulsefireHasteController
{
public:
HyperXPulsefireHasteController(hid_device* dev_handle, const char* path);
HyperXPulsefireHasteController(hid_device* dev_handle, const char* path, std::string dev_name);
~HyperXPulsefireHasteController();
std::string GetDeviceLocation();
std::string GetNameString();
std::string GetSerialString();
void SendDirect
@ -38,6 +39,7 @@ public:
private:
hid_device* dev;
std::string location;
std::string name;
void SendDirectSetup();
void SendDirectColor

View file

@ -26,20 +26,20 @@ using namespace std::chrono_literals;
RGBController_HyperXPulsefireHaste::RGBController_HyperXPulsefireHaste(HyperXPulsefireHasteController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "HyperX Pulsefire Haste Device";
vendor = "HyperX";
type = DEVICE_TYPE_MOUSE;
description = "HyperX Pulsefire Haste Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
name = controller->GetNameString();
vendor = "HyperX";
type = DEVICE_TYPE_MOUSE;
description = "HyperX Pulsefire Haste Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";
Direct.value = 0xFFFF;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
Direct.name = "Direct";
Direct.value = 0xFFFF;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
SetupZones();

View file

@ -15,11 +15,11 @@
using namespace std::chrono_literals;
HyperXPulsefireRaidController::HyperXPulsefireRaidController(hid_device* dev_handle, const hid_device_info& info)
HyperXPulsefireRaidController::HyperXPulsefireRaidController(hid_device* dev_handle, const hid_device_info& info, std::string dev_name)
{
dev = dev_handle;
location = info.path;
version = "";
name = dev_name;
}
HyperXPulsefireRaidController::~HyperXPulsefireRaidController()
@ -32,6 +32,11 @@ std::string HyperXPulsefireRaidController::GetDeviceLocation()
return("HID: " + location);
}
std::string HyperXPulsefireRaidController::GetNameString()
{
return(name);
}
std::string HyperXPulsefireRaidController::GetSerialString()
{
wchar_t serial_string[128];
@ -45,11 +50,6 @@ std::string HyperXPulsefireRaidController::GetSerialString()
return(StringUtils::wstring_to_string(serial_string));
}
std::string HyperXPulsefireRaidController::GetFirmwareVersion()
{
return(version);
}
void HyperXPulsefireRaidController::SendColors(std::vector<RGBColor> colors)
{
unsigned char usb_buf[HYPERX_PULSFIRE_RAID_PACKET_DATA_LENGTH];

View file

@ -30,12 +30,13 @@ enum
class HyperXPulsefireRaidController
{
public:
HyperXPulsefireRaidController(hid_device* dev_handle, const hid_device_info& info);
HyperXPulsefireRaidController(hid_device* dev_handle, const hid_device_info& info, std::string dev_name);
~HyperXPulsefireRaidController();
std::string GetNameString();
std::string GetSerialString();
std::string GetDeviceLocation();
std::string GetFirmwareVersion();
void SendColors(std::vector<RGBColor> colors);
void SetBrightness(unsigned char brightness);
@ -44,7 +45,7 @@ protected:
private:
std::string location;
std::string version;
std::string name;
void Send(unsigned char* packet);
};

View file

@ -26,24 +26,23 @@ using namespace std::chrono_literals;
RGBController_HyperXPulsefireRaid::RGBController_HyperXPulsefireRaid(HyperXPulsefireRaidController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "HyperX Pulsefire Raid Device";
vendor = "HyperX";
type = DEVICE_TYPE_MOUSE;
description = "HyperX Pulsefire Raid Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
version = controller->GetFirmwareVersion();
name = controller->GetNameString();
vendor = "HyperX";
type = DEVICE_TYPE_MOUSE;
description = "HyperX Pulsefire Raid Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";
Direct.value = 0x00;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS;
Direct.color_mode = MODE_COLORS_PER_LED;
Direct.brightness = HYPERX_PULSFIRE_RAID_BRIGHTNESS_MAX;
Direct.brightness_min = HYPERX_PULSFIRE_RAID_BRIGHTNESS_MIN;
Direct.brightness_max = HYPERX_PULSFIRE_RAID_BRIGHTNESS_MAX;
Direct.name = "Direct";
Direct.value = 0x00;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS;
Direct.color_mode = MODE_COLORS_PER_LED;
Direct.brightness = HYPERX_PULSFIRE_RAID_BRIGHTNESS_MAX;
Direct.brightness_min = HYPERX_PULSFIRE_RAID_BRIGHTNESS_MIN;
Direct.brightness_max = HYPERX_PULSFIRE_RAID_BRIGHTNESS_MAX;
modes.push_back(Direct);

View file

@ -13,10 +13,11 @@
#include "HyperXPulsefireSurgeController.h"
#include "StringUtils.h"
HyperXPulsefireSurgeController::HyperXPulsefireSurgeController(hid_device* dev_handle, const char* path)
HyperXPulsefireSurgeController::HyperXPulsefireSurgeController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
}
HyperXPulsefireSurgeController::~HyperXPulsefireSurgeController()
@ -29,6 +30,11 @@ std::string HyperXPulsefireSurgeController::GetDeviceLocation()
return("HID " + location);
}
std::string HyperXPulsefireSurgeController::GetNameString()
{
return(name);
}
std::string HyperXPulsefireSurgeController::GetSerialString()
{
wchar_t serial_string[128];

View file

@ -35,10 +35,11 @@ enum
class HyperXPulsefireSurgeController
{
public:
HyperXPulsefireSurgeController(hid_device* dev_handle, const char* path);
HyperXPulsefireSurgeController(hid_device* dev_handle, const char* path, std::string dev_name);
~HyperXPulsefireSurgeController();
std::string GetDeviceLocation();
std::string GetNameString();
std::string GetSerialString();
void SelectProfile
@ -60,4 +61,5 @@ public:
private:
hid_device* dev;
std::string location;
std::string name;
};

View file

@ -26,20 +26,20 @@ using namespace std::chrono_literals;
RGBController_HyperXPulsefireSurge::RGBController_HyperXPulsefireSurge(HyperXPulsefireSurgeController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "HyperX Pulsefire Surge Device";
vendor = "HyperX";
type = DEVICE_TYPE_MOUSE;
description = "HyperX Pulsefire Surge Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
name = controller->GetNameString();
vendor = "HyperX";
type = DEVICE_TYPE_MOUSE;
description = "HyperX Pulsefire Surge Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";
Direct.value = 0xFFFF;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
Direct.name = "Direct";
Direct.value = 0xFFFF;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
SetupZones();