Store name in ZalmanZSyncController to avoid setting it in detector

This commit is contained in:
Adam Honse 2025-08-14 23:01:51 -05:00
parent 84c24e70c0
commit 4e96056ac4
4 changed files with 116 additions and 109 deletions

View file

@ -24,156 +24,156 @@
RGBController_ZalmanZSync::RGBController_ZalmanZSync(ZalmanZSyncController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "Zalman Z Sync Device";
vendor = "Zalman";
description = "Zalman Z Sync Device";
type = DEVICE_TYPE_LEDSTRIP;
version = controller->GetFirmwareString();
location = controller->GetLocationString();
serial = controller->GetSerialString();
name = controller->GetNameString();
vendor = "Zalman";
description = "Zalman Z Sync Device";
type = DEVICE_TYPE_LEDSTRIP;
version = controller->GetFirmwareString();
location = controller->GetLocationString();
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);
mode RainbowWave;
RainbowWave.name = "Rainbow Wave";
RainbowWave.value = ZALMAN_Z_SYNC_MODE_RAINBOW_WAVE;
RainbowWave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR;
RainbowWave.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
RainbowWave.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
RainbowWave.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
RainbowWave.direction = MODE_DIRECTION_RIGHT;
RainbowWave.color_mode = MODE_COLORS_NONE;
RainbowWave.name = "Rainbow Wave";
RainbowWave.value = ZALMAN_Z_SYNC_MODE_RAINBOW_WAVE;
RainbowWave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR;
RainbowWave.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
RainbowWave.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
RainbowWave.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
RainbowWave.direction = MODE_DIRECTION_RIGHT;
RainbowWave.color_mode = MODE_COLORS_NONE;
modes.push_back(RainbowWave);
mode ColorShift;
ColorShift.name = "Color Shift";
ColorShift.value = ZALMAN_Z_SYNC_MODE_COLOR_SHIFT;
ColorShift.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
ColorShift.colors_min = 2;
ColorShift.colors_max = 2;
ColorShift.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
ColorShift.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
ColorShift.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
ColorShift.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorShift.name = "Color Shift";
ColorShift.value = ZALMAN_Z_SYNC_MODE_COLOR_SHIFT;
ColorShift.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
ColorShift.colors_min = 2;
ColorShift.colors_max = 2;
ColorShift.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
ColorShift.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
ColorShift.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
ColorShift.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorShift.colors.resize(2);
modes.push_back(ColorShift);
mode ColorPulse;
ColorPulse.name = "Color Pulse";
ColorPulse.value = ZALMAN_Z_SYNC_MODE_COLOR_PULSE;
ColorPulse.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
ColorPulse.colors_min = 2;
ColorPulse.colors_max = 2;
ColorPulse.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
ColorPulse.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
ColorPulse.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
ColorPulse.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorPulse.name = "Color Pulse";
ColorPulse.value = ZALMAN_Z_SYNC_MODE_COLOR_PULSE;
ColorPulse.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
ColorPulse.colors_min = 2;
ColorPulse.colors_max = 2;
ColorPulse.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
ColorPulse.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
ColorPulse.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
ColorPulse.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorPulse.colors.resize(2);
modes.push_back(ColorPulse);
mode ColorWave;
ColorWave.name = "Color Wave";
ColorWave.value = ZALMAN_Z_SYNC_MODE_COLOR_WAVE;
ColorWave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
ColorWave.colors_min = 2;
ColorWave.colors_max = 2;
ColorWave.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
ColorWave.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
ColorWave.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
ColorWave.direction = MODE_DIRECTION_RIGHT;
ColorWave.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorWave.name = "Color Wave";
ColorWave.value = ZALMAN_Z_SYNC_MODE_COLOR_WAVE;
ColorWave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
ColorWave.colors_min = 2;
ColorWave.colors_max = 2;
ColorWave.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
ColorWave.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
ColorWave.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
ColorWave.direction = MODE_DIRECTION_RIGHT;
ColorWave.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorWave.colors.resize(2);
modes.push_back(ColorWave);
mode Static;
Static.name = "Static";
Static.value = ZALMAN_Z_SYNC_MODE_STATIC;
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
Static.colors_min = 1;
Static.colors_max = 1;
Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
Static.name = "Static";
Static.value = ZALMAN_Z_SYNC_MODE_STATIC;
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
Static.colors_min = 1;
Static.colors_max = 1;
Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
Static.colors.resize(1);
modes.push_back(Static);
mode Temperature;
Temperature.name = "Temperature";
Temperature.value = ZALMAN_Z_SYNC_MODE_TEMPERATURE;
Temperature.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
Temperature.colors_min = 3;
Temperature.colors_max = 3;
Temperature.color_mode = MODE_COLORS_MODE_SPECIFIC;
Temperature.name = "Temperature";
Temperature.value = ZALMAN_Z_SYNC_MODE_TEMPERATURE;
Temperature.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
Temperature.colors_min = 3;
Temperature.colors_max = 3;
Temperature.color_mode = MODE_COLORS_MODE_SPECIFIC;
Temperature.colors.resize(3);
modes.push_back(Temperature);
mode Visor;
Visor.name = "Visor";
Visor.value = ZALMAN_Z_SYNC_MODE_VISOR;
Visor.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
Visor.colors_min = 2;
Visor.colors_max = 2;
Visor.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
Visor.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
Visor.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
Visor.color_mode = MODE_COLORS_MODE_SPECIFIC;
Visor.name = "Visor";
Visor.value = ZALMAN_Z_SYNC_MODE_VISOR;
Visor.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
Visor.colors_min = 2;
Visor.colors_max = 2;
Visor.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
Visor.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
Visor.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
Visor.color_mode = MODE_COLORS_MODE_SPECIFIC;
Visor.colors.resize(2);
modes.push_back(Visor);
mode Marquee;
Marquee.name = "Marquee";
Marquee.value = ZALMAN_Z_SYNC_MODE_MARQUEE;
Marquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
Marquee.colors_min = 1;
Marquee.colors_max = 1;
Marquee.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
Marquee.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
Marquee.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
Marquee.direction = MODE_DIRECTION_RIGHT;
Marquee.color_mode = MODE_COLORS_MODE_SPECIFIC;
Marquee.name = "Marquee";
Marquee.value = ZALMAN_Z_SYNC_MODE_MARQUEE;
Marquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
Marquee.colors_min = 1;
Marquee.colors_max = 1;
Marquee.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
Marquee.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
Marquee.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
Marquee.direction = MODE_DIRECTION_RIGHT;
Marquee.color_mode = MODE_COLORS_MODE_SPECIFIC;
Marquee.colors.resize(1);
modes.push_back(Marquee);
mode Blink;
Blink.name = "Blink";
Blink.value = ZALMAN_Z_SYNC_MODE_BLINK;
Blink.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
Blink.colors_min = 2;
Blink.colors_max = 2;
Blink.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
Blink.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
Blink.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
Blink.color_mode = MODE_COLORS_MODE_SPECIFIC;
Blink.name = "Blink";
Blink.value = ZALMAN_Z_SYNC_MODE_BLINK;
Blink.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
Blink.colors_min = 2;
Blink.colors_max = 2;
Blink.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
Blink.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
Blink.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
Blink.color_mode = MODE_COLORS_MODE_SPECIFIC;
Blink.colors.resize(2);
modes.push_back(Blink);
mode Sequential;
Sequential.name = "Sequential";
Sequential.value = ZALMAN_Z_SYNC_MODE_SEQUENTIAL;
Sequential.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
Sequential.colors_min = 1;
Sequential.colors_max = 1;
Sequential.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
Sequential.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
Sequential.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
Sequential.direction = MODE_DIRECTION_RIGHT;
Sequential.color_mode = MODE_COLORS_MODE_SPECIFIC;
Sequential.name = "Sequential";
Sequential.value = ZALMAN_Z_SYNC_MODE_SEQUENTIAL;
Sequential.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
Sequential.colors_min = 1;
Sequential.colors_max = 1;
Sequential.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
Sequential.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
Sequential.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
Sequential.direction = MODE_DIRECTION_RIGHT;
Sequential.color_mode = MODE_COLORS_MODE_SPECIFIC;
Sequential.colors.resize(1);
modes.push_back(Sequential);
mode Rainbow;
Rainbow.name = "Rainbow";
Rainbow.value = ZALMAN_Z_SYNC_MODE_RAINBOW;
Rainbow.flags = MODE_FLAG_HAS_SPEED;
Rainbow.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
Rainbow.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
Rainbow.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
Rainbow.color_mode = MODE_COLORS_NONE;
Rainbow.name = "Rainbow";
Rainbow.value = ZALMAN_Z_SYNC_MODE_RAINBOW;
Rainbow.flags = MODE_FLAG_HAS_SPEED;
Rainbow.speed_min = ZALMAN_Z_SYNC_SPEED_SLOW;
Rainbow.speed_max = ZALMAN_Z_SYNC_SPEED_FAST;
Rainbow.speed = ZALMAN_Z_SYNC_SPEED_MEDIUM;
Rainbow.color_mode = MODE_COLORS_NONE;
modes.push_back(Rainbow);
SetupZones();

View file

@ -22,10 +22,11 @@
using namespace std::chrono_literals;
ZalmanZSyncController::ZalmanZSyncController(hid_device* dev_handle, const char* path)
ZalmanZSyncController::ZalmanZSyncController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
SendFirmwareRequest();
@ -70,6 +71,11 @@ std::string ZalmanZSyncController::GetLocationString()
return("HID: " + location);
}
std::string ZalmanZSyncController::GetNameString()
{
return(name);
}
std::string ZalmanZSyncController::GetSerialString()
{
wchar_t serial_string[128];

View file

@ -94,11 +94,12 @@ enum
class ZalmanZSyncController
{
public:
ZalmanZSyncController(hid_device* dev_handle, const char* path);
ZalmanZSyncController(hid_device* dev_handle, const char* path, std::string dev_name);
~ZalmanZSyncController();
std::string GetFirmwareString();
std::string GetLocationString();
std::string GetNameString();
std::string GetSerialString();
unsigned int GetStripsOnChannel(unsigned int channel);
@ -128,6 +129,7 @@ private:
hid_device* dev;
std::string firmware_version;
std::string location;
std::string name;
std::thread* keepalive_thread;
std::atomic<bool> keepalive_thread_run;
std::chrono::time_point<std::chrono::steady_clock> last_commit_time;

View file

@ -31,9 +31,8 @@ void DetectZalmanZSyncControllers(hid_device_info* info, const std::string& name
if(dev)
{
ZalmanZSyncController* controller = new ZalmanZSyncController(dev, info->path);
ZalmanZSyncController* controller = new ZalmanZSyncController(dev, info->path, name);
RGBController_ZalmanZSync* rgb_controller = new RGBController_ZalmanZSync(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}