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) RGBController_ZETBladeOptical::RGBController_ZETBladeOptical(ZETBladeOpticalController* controller_ptr)
{ {
controller = controller_ptr; controller = controller_ptr;
name = "ZET Blade Optical Keyboard Device"; name = controller->GetNameString();
vendor = "ZET"; vendor = "ZET";
type = DEVICE_TYPE_KEYBOARD; type = DEVICE_TYPE_KEYBOARD;
description = "ZET Blade Optical Keyboard Device"; description = "ZET Blade Optical Keyboard Device";
location = controller->GetDeviceLocation(); location = controller->GetDeviceLocation();
serial = controller->GetSerialString(); serial = controller->GetSerialString();
mode Custom; mode Custom;
Custom.name = "Custom"; Custom.name = "Custom";
Custom.value = ZET_BLADE_OPTICAL_MODE_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.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Custom.color_mode = MODE_COLORS_PER_LED; Custom.color_mode = MODE_COLORS_PER_LED;
Custom.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; Custom.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Custom.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; Custom.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Custom.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Custom.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
modes.push_back(Custom); modes.push_back(Custom);
mode Static; mode Static;
Static.name = "Static"; Static.name = "Static";
Static.value = ZET_BLADE_OPTICAL_MODE_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.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Static.color_mode = MODE_COLORS_MODE_SPECIFIC; Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
Static.colors_min = 1; Static.colors_min = 1;
Static.colors_max = 1; Static.colors_max = 1;
Static.colors.resize(Static.colors_max); Static.colors.resize(Static.colors_max);
Static.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; Static.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Static.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; Static.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Static.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Static.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Static.speed = ZET_BLADE_OPTICAL_SPEED_DEF; Static.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Static); modes.push_back(Static);
mode Breathing; mode Breathing;
Breathing.name = "Breathing"; Breathing.name = "Breathing";
Breathing.value = ZET_BLADE_OPTICAL_MODE_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.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.color_mode = MODE_COLORS_RANDOM;
Breathing.colors_min = 1; Breathing.colors_min = 1;
Breathing.colors_max = 1; Breathing.colors_max = 1;
Breathing.colors.resize(Breathing.colors_max); Breathing.colors.resize(Breathing.colors_max);
Breathing.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; Breathing.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Breathing.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; Breathing.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Breathing.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Breathing.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Breathing.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; Breathing.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Breathing.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; Breathing.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Breathing.speed = ZET_BLADE_OPTICAL_SPEED_DEF; Breathing.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Breathing); modes.push_back(Breathing);
mode OnPress; mode OnPress;
OnPress.name = "Reactive"; OnPress.name = "Reactive";
OnPress.value = ZET_BLADE_OPTICAL_MODE_ON_PRESS; 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.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.color_mode = MODE_COLORS_RANDOM;
OnPress.colors_min = 1; OnPress.colors_min = 1;
OnPress.colors_max = 1; OnPress.colors_max = 1;
OnPress.colors.resize(OnPress.colors_max); OnPress.colors.resize(OnPress.colors_max);
OnPress.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; OnPress.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
OnPress.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; OnPress.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
OnPress.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; OnPress.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
OnPress.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; OnPress.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
OnPress.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; OnPress.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
OnPress.speed = ZET_BLADE_OPTICAL_SPEED_DEF; OnPress.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(OnPress); modes.push_back(OnPress);
mode Raindrop; mode Raindrop;
Raindrop.name = "Reactive Raindrop"; Raindrop.name = "Reactive Raindrop";
Raindrop.value = ZET_BLADE_OPTICAL_MODE_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.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.color_mode = MODE_COLORS_RANDOM;
Raindrop.colors_min = 1; Raindrop.colors_min = 1;
Raindrop.colors_max = 1; Raindrop.colors_max = 1;
Raindrop.colors.resize(Raindrop.colors_max); Raindrop.colors.resize(Raindrop.colors_max);
Raindrop.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; Raindrop.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Raindrop.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; Raindrop.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Raindrop.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Raindrop.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Raindrop.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; Raindrop.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Raindrop.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; Raindrop.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Raindrop.speed = ZET_BLADE_OPTICAL_SPEED_DEF; Raindrop.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Raindrop); modes.push_back(Raindrop);
mode Ripple; mode Ripple;
Ripple.name = "Reactive Ripple"; Ripple.name = "Reactive Ripple";
Ripple.value = ZET_BLADE_OPTICAL_MODE_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.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.color_mode = MODE_COLORS_RANDOM;
Ripple.colors_min = 1; Ripple.colors_min = 1;
Ripple.colors_max = 1; Ripple.colors_max = 1;
Ripple.colors.resize(Ripple.colors_max); Ripple.colors.resize(Ripple.colors_max);
Ripple.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; Ripple.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Ripple.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; Ripple.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Ripple.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Ripple.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Ripple.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; Ripple.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Ripple.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; Ripple.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Ripple.speed = ZET_BLADE_OPTICAL_SPEED_DEF; Ripple.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Ripple); modes.push_back(Ripple);
mode Laser; mode Laser;
Laser.name = "Reactive Laser"; Laser.name = "Reactive Laser";
Laser.value = ZET_BLADE_OPTICAL_MODE_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.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.color_mode = MODE_COLORS_RANDOM;
Laser.colors_min = 1; Laser.colors_min = 1;
Laser.colors_max = 1; Laser.colors_max = 1;
Laser.colors.resize(Laser.colors_max); Laser.colors.resize(Laser.colors_max);
Laser.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; Laser.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Laser.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; Laser.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Laser.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Laser.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Laser.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; Laser.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Laser.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; Laser.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Laser.speed = ZET_BLADE_OPTICAL_SPEED_DEF; Laser.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Laser); modes.push_back(Laser);
mode Waves; mode Waves;
Waves.name = "Waves"; Waves.name = "Waves";
Waves.value = ZET_BLADE_OPTICAL_MODE_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.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.color_mode = MODE_COLORS_RANDOM;
Waves.colors_min = 1; Waves.colors_min = 1;
Waves.colors_max = 1; Waves.colors_max = 1;
Waves.colors.resize(Waves.colors_max); Waves.colors.resize(Waves.colors_max);
Waves.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; Waves.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Waves.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; Waves.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Waves.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Waves.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Waves.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; Waves.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Waves.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; Waves.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Waves.speed = ZET_BLADE_OPTICAL_SPEED_DEF; Waves.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Waves); modes.push_back(Waves);
mode Rain; mode Rain;
Rain.name = "Rain"; Rain.name = "Rain";
Rain.value = ZET_BLADE_OPTICAL_MODE_RAIN; Rain.value = ZET_BLADE_OPTICAL_MODE_RAIN;
Rain.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE; Rain.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Rain.color_mode = MODE_COLORS_NONE; Rain.color_mode = MODE_COLORS_NONE;
Rain.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; Rain.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Rain.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; Rain.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Rain.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Rain.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Rain.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; Rain.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Rain.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; Rain.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Rain.speed = ZET_BLADE_OPTICAL_SPEED_DEF; Rain.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Rain); modes.push_back(Rain);
mode Spectrum; mode Spectrum;
Spectrum.name = "Spectrum Cycle"; Spectrum.name = "Spectrum Cycle";
Spectrum.value = ZET_BLADE_OPTICAL_MODE_SPECTRUM; Spectrum.value = ZET_BLADE_OPTICAL_MODE_SPECTRUM;
Spectrum.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE; Spectrum.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Spectrum.color_mode = MODE_COLORS_NONE; Spectrum.color_mode = MODE_COLORS_NONE;
Spectrum.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; Spectrum.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Spectrum.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; Spectrum.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Spectrum.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Spectrum.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Spectrum.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; Spectrum.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Spectrum.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; Spectrum.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Spectrum.speed = ZET_BLADE_OPTICAL_SPEED_DEF; Spectrum.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Spectrum); 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 /._. 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.name = "Rainbow Wave";
SurfingRight.value = ZET_BLADE_OPTICAL_MODE_SURFING_RIGHT; SurfingRight.value = ZET_BLADE_OPTICAL_MODE_SURFING_RIGHT;
SurfingRight.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE; SurfingRight.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
SurfingRight.color_mode = MODE_COLORS_NONE; SurfingRight.color_mode = MODE_COLORS_NONE;
SurfingRight.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; SurfingRight.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
SurfingRight.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; SurfingRight.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
SurfingRight.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; SurfingRight.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
SurfingRight.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; SurfingRight.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
SurfingRight.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; SurfingRight.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
SurfingRight.speed = ZET_BLADE_OPTICAL_SPEED_DEF; SurfingRight.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(SurfingRight); modes.push_back(SurfingRight);
mode SurfingCenter; mode SurfingCenter;
SurfingCenter.name = "Rainbow Wave Center"; SurfingCenter.name = "Rainbow Wave Center";
SurfingCenter.value = ZET_BLADE_OPTICAL_MODE_SURFING_CENTER; SurfingCenter.value = ZET_BLADE_OPTICAL_MODE_SURFING_CENTER;
SurfingCenter.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE; SurfingCenter.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
SurfingCenter.color_mode = MODE_COLORS_NONE; SurfingCenter.color_mode = MODE_COLORS_NONE;
SurfingCenter.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; SurfingCenter.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
SurfingCenter.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; SurfingCenter.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
SurfingCenter.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; SurfingCenter.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
SurfingCenter.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; SurfingCenter.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
SurfingCenter.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; SurfingCenter.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
SurfingCenter.speed = ZET_BLADE_OPTICAL_SPEED_DEF; SurfingCenter.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(SurfingCenter); modes.push_back(SurfingCenter);
mode SurfingCross; mode SurfingCross;
SurfingCross.name = "Rainbow Wave Cross"; SurfingCross.name = "Rainbow Wave Cross";
SurfingCross.value = ZET_BLADE_OPTICAL_MODE_SURFING_CROSS; SurfingCross.value = ZET_BLADE_OPTICAL_MODE_SURFING_CROSS;
SurfingCross.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE; SurfingCross.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
SurfingCross.color_mode = MODE_COLORS_NONE; SurfingCross.color_mode = MODE_COLORS_NONE;
SurfingCross.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; SurfingCross.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
SurfingCross.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; SurfingCross.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
SurfingCross.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; SurfingCross.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
SurfingCross.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; SurfingCross.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
SurfingCross.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; SurfingCross.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
SurfingCross.speed = ZET_BLADE_OPTICAL_SPEED_DEF; SurfingCross.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(SurfingCross); modes.push_back(SurfingCross);
mode RotateMarquee; mode RotateMarquee;
RotateMarquee.name = "Vortex"; RotateMarquee.name = "Vortex";
RotateMarquee.value = ZET_BLADE_OPTICAL_MODE_ROTATE_MARQUEE; RotateMarquee.value = ZET_BLADE_OPTICAL_MODE_ROTATE_MARQUEE;
RotateMarquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE; RotateMarquee.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
RotateMarquee.color_mode = MODE_COLORS_NONE; RotateMarquee.color_mode = MODE_COLORS_NONE;
RotateMarquee.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; RotateMarquee.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
RotateMarquee.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; RotateMarquee.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
RotateMarquee.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; RotateMarquee.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
RotateMarquee.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; RotateMarquee.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
RotateMarquee.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; RotateMarquee.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
RotateMarquee.speed = ZET_BLADE_OPTICAL_SPEED_DEF; RotateMarquee.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(RotateMarquee); modes.push_back(RotateMarquee);
mode Traffic; mode Traffic;
Traffic.name = "Traffic"; Traffic.name = "Traffic";
Traffic.value = ZET_BLADE_OPTICAL_MODE_TRAFFIC; Traffic.value = ZET_BLADE_OPTICAL_MODE_TRAFFIC;
Traffic.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE; Traffic.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Traffic.color_mode = MODE_COLORS_NONE; Traffic.color_mode = MODE_COLORS_NONE;
Traffic.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; Traffic.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Traffic.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; Traffic.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Traffic.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Traffic.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Traffic.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; Traffic.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Traffic.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; Traffic.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Traffic.speed = ZET_BLADE_OPTICAL_SPEED_DEF; Traffic.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Traffic); modes.push_back(Traffic);
mode Gradient; mode Gradient;
Gradient.name = "Gradient"; Gradient.name = "Gradient";
Gradient.value = ZET_BLADE_OPTICAL_MODE_GRADIENT; Gradient.value = ZET_BLADE_OPTICAL_MODE_GRADIENT;
Gradient.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE; Gradient.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Gradient.color_mode = MODE_COLORS_NONE; Gradient.color_mode = MODE_COLORS_NONE;
Gradient.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN; Gradient.brightness_min = ZET_BLADE_OPTICAL_BRIGHTNESS_MIN;
Gradient.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX; Gradient.brightness_max = ZET_BLADE_OPTICAL_BRIGHTNESS_MAX;
Gradient.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Gradient.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
Gradient.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN; Gradient.speed_min = ZET_BLADE_OPTICAL_SPEED_MIN;
Gradient.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX; Gradient.speed_max = ZET_BLADE_OPTICAL_SPEED_MAX;
Gradient.speed = ZET_BLADE_OPTICAL_SPEED_DEF; Gradient.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
modes.push_back(Gradient); modes.push_back(Gradient);
mode Off; mode Off;
Off.name = "Off"; Off.name = "Off";
Off.value = ZET_BLADE_OPTICAL_MODE_OFF; Off.value = ZET_BLADE_OPTICAL_MODE_OFF;
Off.flags = MODE_FLAG_AUTOMATIC_SAVE; Off.flags = MODE_FLAG_AUTOMATIC_SAVE;
Off.color_mode = MODE_COLORS_NONE; Off.color_mode = MODE_COLORS_NONE;
Off.speed = ZET_BLADE_OPTICAL_SPEED_DEF; Off.speed = ZET_BLADE_OPTICAL_SPEED_DEF;
Off.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF; Off.brightness = ZET_BLADE_OPTICAL_BRIGHTNESS_DEF;
modes.push_back(Off); modes.push_back(Off);
SetupZones(); 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 }; 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; dev = dev_handle;
location = path; location = path;
name = dev_name;
effect_mode = ZET_BLADE_OPTICAL_MODE_STATIC; effect_mode = ZET_BLADE_OPTICAL_MODE_STATIC;
} }
@ -45,6 +46,11 @@ std::string ZETBladeOpticalController::GetDeviceLocation()
return("HID " + location); return("HID " + location);
} }
std::string ZETBladeOpticalController::GetNameString()
{
return(name);
}
std::string ZETBladeOpticalController::GetSerialString() std::string ZETBladeOpticalController::GetSerialString()
{ {
wchar_t serial_string[128]; wchar_t serial_string[128];

View file

@ -51,10 +51,11 @@
class ZETBladeOpticalController class ZETBladeOpticalController
{ {
public: public:
ZETBladeOpticalController(hid_device* dev_handle, const char* path); ZETBladeOpticalController(hid_device* dev_handle, const char* path, std::string dev_name);
~ZETBladeOpticalController(); ~ZETBladeOpticalController();
std::string GetDeviceLocation(); std::string GetDeviceLocation();
std::string GetNameString();
std::string GetSerialString(); std::string GetSerialString();
void SetLEDDirect(const std::vector<RGBColor>& colors, unsigned char brightness); void SetLEDDirect(const std::vector<RGBColor>& colors, unsigned char brightness);
@ -63,8 +64,10 @@ public:
private: private:
hid_device* dev; hid_device* dev;
std::string location; std::string location;
std::string name;
unsigned int effect_mode; unsigned int effect_mode;
bool custom_mode; bool custom_mode;
void PrepareHeader(unsigned char *packet, unsigned char brightness); 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); 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); 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) 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); RGBController_ZETBladeOptical* rgb_controller = new RGBController_ZETBladeOptical(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller); ResourceManager::get()->RegisterRGBController(rgb_controller);
} }