Store name in ZETKeyboardController to avoid setting it in detector

This commit is contained in:
Adam Honse 2025-08-14 23:11:18 -05:00
parent 86b2ced685
commit ad9fd08a08
4 changed files with 194 additions and 186 deletions

View file

@ -185,246 +185,246 @@ static const char *led_names[] =
RGBController_ZETBladeOptical::RGBController_ZETBladeOptical(ZETBladeOpticalController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "ZET Blade Optical Keyboard Device";
vendor = "ZET";
type = DEVICE_TYPE_KEYBOARD;
description = "ZET Blade Optical Keyboard Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
name = controller->GetNameString();
vendor = "ZET";
type = DEVICE_TYPE_KEYBOARD;
description = "ZET Blade Optical Keyboard Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Custom;
Custom.name = "Custom";
Custom.value = ZET_BLADE_OPTICAL_MODE_CUSTOM;
Custom.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Custom.color_mode = MODE_COLORS_PER_LED;
Custom.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Custom.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Custom.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Custom.name = "Custom";
Custom.value = ZET_BLADE_OPTICAL_MODE_CUSTOM;
Custom.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Custom.color_mode = MODE_COLORS_PER_LED;
Custom.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Custom.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Custom.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
modes.push_back(Custom);
mode Static;
Static.name = "Static";
Static.value = ZET_BLADE_OPTICAL_MODE_STATIC;
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
Static.colors_min = 1;
Static.colors_max = 1;
Static.name = "Static";
Static.value = ZET_BLADE_OPTICAL_MODE_STATIC;
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
Static.colors_min = 1;
Static.colors_max = 1;
Static.colors.resize(Static.colors_max);
Static.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Static.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Static.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Static.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Static.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Static.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Static.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Static.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Static);
mode Breathing;
Breathing.name = "Breathing";
Breathing.value = ZET_BLADE_OPTICAL_MODE_BREATHING;
Breathing.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Breathing.color_mode = MODE_COLORS_RANDOM;
Breathing.colors_min = 1;
Breathing.colors_max = 1;
Breathing.name = "Breathing";
Breathing.value = ZET_BLADE_OPTICAL_MODE_BREATHING;
Breathing.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Breathing.color_mode = MODE_COLORS_RANDOM;
Breathing.colors_min = 1;
Breathing.colors_max = 1;
Breathing.colors.resize(Breathing.colors_max);
Breathing.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Breathing.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Breathing.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Breathing.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Breathing.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Breathing.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Breathing.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Breathing.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Breathing.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Breathing.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Breathing.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Breathing.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Breathing);
mode OnPress;
OnPress.name = "Reactive";
OnPress.value = ZET_BLADE_OPTICAL_MODE_ON_PRESS;
OnPress.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
OnPress.color_mode = MODE_COLORS_RANDOM;
OnPress.colors_min = 1;
OnPress.colors_max = 1;
OnPress.name = "Reactive";
OnPress.value = ZET_BLADE_OPTICAL_MODE_ON_PRESS;
OnPress.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
OnPress.color_mode = MODE_COLORS_RANDOM;
OnPress.colors_min = 1;
OnPress.colors_max = 1;
OnPress.colors.resize(OnPress.colors_max);
OnPress.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
OnPress.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
OnPress.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
OnPress.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
OnPress.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
OnPress.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
OnPress.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
OnPress.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
OnPress.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
OnPress.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
OnPress.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
OnPress.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(OnPress);
mode Raindrop;
Raindrop.name = "Reactive Raindrop";
Raindrop.value = ZET_BLADE_OPTICAL_MODE_RAINDROP;
Raindrop.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Raindrop.color_mode = MODE_COLORS_RANDOM;
Raindrop.colors_min = 1;
Raindrop.colors_max = 1;
Raindrop.name = "Reactive Raindrop";
Raindrop.value = ZET_BLADE_OPTICAL_MODE_RAINDROP;
Raindrop.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Raindrop.color_mode = MODE_COLORS_RANDOM;
Raindrop.colors_min = 1;
Raindrop.colors_max = 1;
Raindrop.colors.resize(Raindrop.colors_max);
Raindrop.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Raindrop.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Raindrop.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Raindrop.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Raindrop.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Raindrop.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Raindrop.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Raindrop.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Raindrop.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Raindrop.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Raindrop.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Raindrop.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Raindrop);
mode Ripple;
Ripple.name = "Reactive Ripple";
Ripple.value = ZET_BLADE_OPTICAL_MODE_RIPPLE;
Ripple.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Ripple.color_mode = MODE_COLORS_RANDOM;
Ripple.colors_min = 1;
Ripple.colors_max = 1;
Ripple.name = "Reactive Ripple";
Ripple.value = ZET_BLADE_OPTICAL_MODE_RIPPLE;
Ripple.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Ripple.color_mode = MODE_COLORS_RANDOM;
Ripple.colors_min = 1;
Ripple.colors_max = 1;
Ripple.colors.resize(Ripple.colors_max);
Ripple.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Ripple.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Ripple.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Ripple.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Ripple.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Ripple.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Ripple.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Ripple.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Ripple.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Ripple.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Ripple.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Ripple.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Ripple);
mode Laser;
Laser.name = "Reactive Laser";
Laser.value = ZET_BLADE_OPTICAL_MODE_LASER;
Laser.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Laser.color_mode = MODE_COLORS_RANDOM;
Laser.colors_min = 1;
Laser.colors_max = 1;
Laser.name = "Reactive Laser";
Laser.value = ZET_BLADE_OPTICAL_MODE_LASER;
Laser.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Laser.color_mode = MODE_COLORS_RANDOM;
Laser.colors_min = 1;
Laser.colors_max = 1;
Laser.colors.resize(Laser.colors_max);
Laser.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Laser.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Laser.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Laser.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Laser.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Laser.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Laser.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Laser.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Laser.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Laser.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Laser.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Laser.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Laser);
mode Waves;
Waves.name = "Waves";
Waves.value = ZET_BLADE_OPTICAL_MODE_WAVES;
Waves.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Waves.color_mode = MODE_COLORS_RANDOM;
Waves.colors_min = 1;
Waves.colors_max = 1;
Waves.name = "Waves";
Waves.value = ZET_BLADE_OPTICAL_MODE_WAVES;
Waves.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Waves.color_mode = MODE_COLORS_RANDOM;
Waves.colors_min = 1;
Waves.colors_max = 1;
Waves.colors.resize(Waves.colors_max);
Waves.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Waves.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Waves.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Waves.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Waves.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Waves.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Waves.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Waves.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Waves.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Waves.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Waves.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Waves.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Waves);
mode Rain;
Rain.name = "Rain";
Rain.value = ZET_BLADE_OPTICAL_MODE_RAIN;
Rain.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Rain.color_mode = MODE_COLORS_NONE;
Rain.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Rain.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Rain.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Rain.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Rain.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Rain.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Rain.name = "Rain";
Rain.value = ZET_BLADE_OPTICAL_MODE_RAIN;
Rain.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Rain.color_mode = MODE_COLORS_NONE;
Rain.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Rain.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Rain.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Rain.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Rain.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Rain.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Rain);
mode Spectrum;
Spectrum.name = "Spectrum Cycle";
Spectrum.value = ZET_BLADE_OPTICAL_MODE_SPECTRUM;
Spectrum.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Spectrum.color_mode = MODE_COLORS_NONE;
Spectrum.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Spectrum.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Spectrum.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Spectrum.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Spectrum.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Spectrum.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Spectrum.name = "Spectrum Cycle";
Spectrum.value = ZET_BLADE_OPTICAL_MODE_SPECTRUM;
Spectrum.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Spectrum.color_mode = MODE_COLORS_NONE;
Spectrum.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Spectrum.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Spectrum.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Spectrum.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Spectrum.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Spectrum.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Spectrum);
mode SurfingRight; // Now, you might be thinking... it'd be better to use .direction here, right? WRONG! There is no Surfing Left /._.
SurfingRight.name = "Rainbow Wave";
SurfingRight.value = ZET_BLADE_OPTICAL_MODE_SURFING_RIGHT;
SurfingRight.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
SurfingRight.color_mode = MODE_COLORS_NONE;
SurfingRight.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
SurfingRight.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
SurfingRight.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
SurfingRight.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
SurfingRight.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
SurfingRight.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
SurfingRight.name = "Rainbow Wave";
SurfingRight.value = ZET_BLADE_OPTICAL_MODE_SURFING_RIGHT;
SurfingRight.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
SurfingRight.color_mode = MODE_COLORS_NONE;
SurfingRight.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
SurfingRight.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
SurfingRight.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
SurfingRight.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
SurfingRight.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
SurfingRight.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(SurfingRight);
mode SurfingCenter;
SurfingCenter.name = "Rainbow Wave Center";
SurfingCenter.value = ZET_BLADE_OPTICAL_MODE_SURFING_CENTER;
SurfingCenter.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
SurfingCenter.color_mode = MODE_COLORS_NONE;
SurfingCenter.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
SurfingCenter.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
SurfingCenter.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
SurfingCenter.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
SurfingCenter.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
SurfingCenter.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
SurfingCenter.name = "Rainbow Wave Center";
SurfingCenter.value = ZET_BLADE_OPTICAL_MODE_SURFING_CENTER;
SurfingCenter.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
SurfingCenter.color_mode = MODE_COLORS_NONE;
SurfingCenter.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
SurfingCenter.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
SurfingCenter.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
SurfingCenter.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
SurfingCenter.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
SurfingCenter.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(SurfingCenter);
mode SurfingCross;
SurfingCross.name = "Rainbow Wave Cross";
SurfingCross.value = ZET_BLADE_OPTICAL_MODE_SURFING_CROSS;
SurfingCross.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
SurfingCross.color_mode = MODE_COLORS_NONE;
SurfingCross.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
SurfingCross.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
SurfingCross.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
SurfingCross.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
SurfingCross.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
SurfingCross.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
SurfingCross.name = "Rainbow Wave Cross";
SurfingCross.value = ZET_BLADE_OPTICAL_MODE_SURFING_CROSS;
SurfingCross.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
SurfingCross.color_mode = MODE_COLORS_NONE;
SurfingCross.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
SurfingCross.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
SurfingCross.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
SurfingCross.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
SurfingCross.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
SurfingCross.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(SurfingCross);
mode RotateMarquee;
RotateMarquee.name = "Vortex";
RotateMarquee.value = ZET_BLADE_OPTICAL_MODE_ROTATE_MARQUEE;
RotateMarquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
RotateMarquee.color_mode = MODE_COLORS_NONE;
RotateMarquee.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
RotateMarquee.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
RotateMarquee.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
RotateMarquee.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
RotateMarquee.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
RotateMarquee.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
RotateMarquee.name = "Vortex";
RotateMarquee.value = ZET_BLADE_OPTICAL_MODE_ROTATE_MARQUEE;
RotateMarquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
RotateMarquee.color_mode = MODE_COLORS_NONE;
RotateMarquee.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
RotateMarquee.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
RotateMarquee.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
RotateMarquee.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
RotateMarquee.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
RotateMarquee.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(RotateMarquee);
mode Traffic;
Traffic.name = "Traffic";
Traffic.value = ZET_BLADE_OPTICAL_MODE_TRAFFIC;
Traffic.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Traffic.color_mode = MODE_COLORS_NONE;
Traffic.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Traffic.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Traffic.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Traffic.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Traffic.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Traffic.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Traffic.name = "Traffic";
Traffic.value = ZET_BLADE_OPTICAL_MODE_TRAFFIC;
Traffic.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Traffic.color_mode = MODE_COLORS_NONE;
Traffic.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Traffic.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Traffic.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Traffic.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Traffic.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Traffic.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Traffic);
mode Gradient;
Gradient.name = "Gradient";
Gradient.value = ZET_BLADE_OPTICAL_MODE_GRADIENT;
Gradient.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Gradient.color_mode = MODE_COLORS_NONE;
Gradient.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Gradient.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Gradient.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Gradient.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Gradient.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Gradient.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Gradient.name = "Gradient";
Gradient.value = ZET_BLADE_OPTICAL_MODE_GRADIENT;
Gradient.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Gradient.color_mode = MODE_COLORS_NONE;
Gradient.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Gradient.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Gradient.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Gradient.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Gradient.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Gradient.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Gradient);
mode Off;
Off.name = "Off";
Off.value = ZET_BLADE_OPTICAL_MODE_OFF;
Off.flags = MODE_FLAG_AUTOMATIC_SAVE;
Off.color_mode = MODE_COLORS_NONE;
Off.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Off.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Off.name = "Off";
Off.value = ZET_BLADE_OPTICAL_MODE_OFF;
Off.flags = MODE_FLAG_AUTOMATIC_SAVE;
Off.color_mode = MODE_COLORS_NONE;
Off.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Off.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
modes.push_back(Off);
SetupZones();

View file

@ -27,10 +27,11 @@ using namespace std::chrono_literals;
static const unsigned int SKIP_INDICES[] = { 1, 17, 18, 19, 20, 75, 77, 78, 79, 83, 85, 96, 98, 100, 108, 109, 111, 112, 113, 116, 123, 125 };
ZETBladeOpticalController::ZETBladeOpticalController(hid_device* dev_handle, const char* path)
ZETBladeOpticalController::ZETBladeOpticalController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
effect_mode = ZET_BLADE_OPTICAL_MODE_STATIC;
}
@ -45,6 +46,11 @@ std::string ZETBladeOpticalController::GetDeviceLocation()
return("HID " + location);
}
std::string ZETBladeOpticalController::GetNameString()
{
return(name);
}
std::string ZETBladeOpticalController::GetSerialString()
{
wchar_t serial_string[128];

View file

@ -51,10 +51,11 @@
class ZETBladeOpticalController
{
public:
ZETBladeOpticalController(hid_device* dev_handle, const char* path);
ZETBladeOpticalController(hid_device* dev_handle, const char* path, std::string dev_name);
~ZETBladeOpticalController();
std::string GetDeviceLocation();
std::string GetNameString();
std::string GetSerialString();
void SetLEDDirect(const std::vector<RGBColor>& colors, unsigned char brightness);
@ -63,8 +64,10 @@ public:
private:
hid_device* dev;
std::string location;
std::string name;
unsigned int effect_mode;
bool custom_mode;
void PrepareHeader(unsigned char *packet, unsigned char brightness);
void PrepareHeader(unsigned char *packet, unsigned char mode, unsigned char speed, unsigned char brightness, unsigned char color);
unsigned char RGBToPalette(unsigned char red, unsigned char grn, unsigned char blu);

View file

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