From 4e96056ac4c3a34ad09aa4027102a8c0bac86b66 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Thu, 14 Aug 2025 23:01:51 -0500 Subject: [PATCH] Store name in ZalmanZSyncController to avoid setting it in detector --- .../RGBController_ZalmanZSync.cpp | 210 +++++++++--------- .../ZalmanZSyncController.cpp | 8 +- .../ZalmanZSyncController.h | 4 +- .../ZalmanZSyncControllerDetect.cpp | 3 +- 4 files changed, 116 insertions(+), 109 deletions(-) diff --git a/Controllers/ZalmanZSyncController/RGBController_ZalmanZSync.cpp b/Controllers/ZalmanZSyncController/RGBController_ZalmanZSync.cpp index adea7939..f37b5259 100644 --- a/Controllers/ZalmanZSyncController/RGBController_ZalmanZSync.cpp +++ b/Controllers/ZalmanZSyncController/RGBController_ZalmanZSync.cpp @@ -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(); diff --git a/Controllers/ZalmanZSyncController/ZalmanZSyncController.cpp b/Controllers/ZalmanZSyncController/ZalmanZSyncController.cpp index c895626c..8f3f05bb 100644 --- a/Controllers/ZalmanZSyncController/ZalmanZSyncController.cpp +++ b/Controllers/ZalmanZSyncController/ZalmanZSyncController.cpp @@ -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]; diff --git a/Controllers/ZalmanZSyncController/ZalmanZSyncController.h b/Controllers/ZalmanZSyncController/ZalmanZSyncController.h index f0a7ec51..429afef9 100644 --- a/Controllers/ZalmanZSyncController/ZalmanZSyncController.h +++ b/Controllers/ZalmanZSyncController/ZalmanZSyncController.h @@ -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 keepalive_thread_run; std::chrono::time_point last_commit_time; diff --git a/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp b/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp index 0a23c21b..0238a341 100644 --- a/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp +++ b/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp @@ -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); }