From a77792a99651c1d0c00e5e7ca64609d24fc35ff2 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Tue, 30 Mar 2021 12:23:16 -0500 Subject: [PATCH] Disable Zalman Z Sync Controller due to bricking, cause unknown, but seems to also happen with official software --- .../RGBController_ZalmanZSync.cpp | 248 +++++++++--------- .../ZalmanZSyncController.cpp | 2 +- .../ZalmanZSyncControllerDetect.cpp | 7 +- 3 files changed, 131 insertions(+), 126 deletions(-) diff --git a/Controllers/ZalmanZSyncController/RGBController_ZalmanZSync.cpp b/Controllers/ZalmanZSyncController/RGBController_ZalmanZSync.cpp index ae9a5bb21..0742e630e 100644 --- a/Controllers/ZalmanZSyncController/RGBController_ZalmanZSync.cpp +++ b/Controllers/ZalmanZSyncController/RGBController_ZalmanZSync.cpp @@ -29,140 +29,140 @@ RGBController_ZalmanZSync::RGBController_ZalmanZSync(ZalmanZSyncController* cont 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; - // modes.push_back(RainbowWave); + 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; + 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.colors.resize(2); - // modes.push_back(ColorShift); + 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.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.colors.resize(2); - // modes.push_back(ColorPulse); + 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.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.colors.resize(2); - // modes.push_back(ColorWave); + 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.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.colors.resize(1); - // modes.push_back(Static); + 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.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.colors.resize(3); - // modes.push_back(Temperature); + 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.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.colors.resize(2); - // modes.push_back(Visor); + 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.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.colors.resize(1); - // modes.push_back(Marquee); + 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.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.colors.resize(2); - // modes.push_back(Blink); + 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.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.colors.resize(1); - // modes.push_back(Sequential); + 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.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; - // modes.push_back(Rainbow); + 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; + modes.push_back(Rainbow); SetupZones(); } diff --git a/Controllers/ZalmanZSyncController/ZalmanZSyncController.cpp b/Controllers/ZalmanZSyncController/ZalmanZSyncController.cpp index 8f92f7912..6efe0fcb4 100644 --- a/Controllers/ZalmanZSyncController/ZalmanZSyncController.cpp +++ b/Controllers/ZalmanZSyncController/ZalmanZSyncController.cpp @@ -158,7 +158,7 @@ void ZalmanZSyncController::SetChannelLEDs(unsigned char channel, RGBColor * col /*-----------------------------------------------------*\ | Send Port State packet | \*-----------------------------------------------------*/ - //SendPortState(channel, ZALMAN_Z_SYNC_PORT_STATE_SOFTWARE); + SendPortState(channel, ZALMAN_Z_SYNC_PORT_STATE_SOFTWARE); /*-----------------------------------------------------*\ | Loop through colors and send 50 at a time | diff --git a/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp b/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp index 312bc3646..96f168408 100644 --- a/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp +++ b/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp @@ -29,4 +29,9 @@ void DetectZalmanZSyncControllers(hid_device_info* info, const std::string& name } } /* DetectZalmanZSyncControllers() */ -REGISTER_HID_DETECTOR("Zalman Z Sync", DetectZalmanZSyncControllers, ZALMAN_VID, ZALMAN_Z_SYNC_PID); +/*-----------------------------------------------------------------*\ +| Disable due to bricking. Bricking may not be caused by OpenRGB | +| as reports of bricking in the official software are common. Seems| +| to be a bug in the firmware, but I want to investigate further | +\*-----------------------------------------------------------------*/ +//REGISTER_HID_DETECTOR("Zalman Z Sync", DetectZalmanZSyncControllers, ZALMAN_VID, ZALMAN_Z_SYNC_PID);