Added missing mode_flags to EVision controller, added GMMK TKL detection

This commit is contained in:
Flora Aubry 2023-03-06 16:25:53 +00:00 committed by Adam Honse
parent 3136b7c12c
commit 36ebdbec2c
2 changed files with 210 additions and 130 deletions

View file

@ -9,8 +9,9 @@
| Keyboard product IDs |
\*-----------------------------------------------------*/
#define EVISION_KEYBOARD_VID 0x0C45
#define WOMIER_K87_VID 0x320F
#define EVISION_KEYBOARD2_VID 0x320F
#define EVISION_KEYBOARD_USAGE_PAGE 0xFF1C
#define GLORIOUS_GMMK_TKL_PID 0x5064
#define REDRAGON_K550_PID 0x5204
#define REDRAGON_K552_PID 0x5104
#define REDRAGON_K556_PID 0x5004
@ -48,5 +49,6 @@ REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5104", DetectEVisionKeyboards,
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5004", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, REDRAGON_K556_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:652F", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, TECWARE_PHANTOM_ELITE_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:8520", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, WARRIOR_KANE_TC235, 1, EVISION_KEYBOARD_USAGE_PAGE);
REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:502A", DetectEVisionKeyboards, WOMIER_K87_VID, WOMIER_K87_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:502A", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, WOMIER_K87_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:7698", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, WOMIER_K66_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5064", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, GLORIOUS_GMMK_TKL_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);

View file

@ -43,176 +43,254 @@ RGBController_EVisionKeyboard::RGBController_EVisionKeyboard(EVisionKeyboardCont
serial = controller->GetSerialString();
mode Custom;
Custom.name = "Custom";
Custom.value = EVISION_KB_MODE_CUSTOM;
Custom.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Custom.color_mode = MODE_COLORS_PER_LED;
Custom.name = "Custom";
Custom.value = EVISION_KB_MODE_CUSTOM;
Custom.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Custom.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
Custom.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
Custom.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
Custom.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Custom);
mode ColorWave;
ColorWave.name = "Color Wave";
ColorWave.value = EVISION_KB_MODE_COLOR_WAVE_LONG;
ColorWave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
ColorWave.speed_min = EVISION_KB_SPEED_SLOWEST;
ColorWave.speed_max = EVISION_KB_SPEED_FASTEST;
ColorWave.speed = EVISION_KB_SPEED_NORMAL;
ColorWave.colors_min = 1;
ColorWave.colors_max = 1;
ColorWave.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorWave.name = "Color Wave";
ColorWave.value = EVISION_KB_MODE_COLOR_WAVE_LONG;
ColorWave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_AUTOMATIC_SAVE;
ColorWave.speed_min = EVISION_KB_SPEED_SLOWEST;
ColorWave.speed_max = EVISION_KB_SPEED_FASTEST;
ColorWave.speed = EVISION_KB_SPEED_NORMAL;
ColorWave.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
ColorWave.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
ColorWave.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
ColorWave.direction = MODE_DIRECTION_LEFT;
ColorWave.colors_min = 1;
ColorWave.colors_max = 1;
ColorWave.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorWave.colors.resize(1);
modes.push_back(ColorWave);
mode ColorWaveShort;
ColorWaveShort.name = "Color Wave (Short)";
ColorWaveShort.value = EVISION_KB_MODE_COLOR_WAVE_SHORT;
ColorWaveShort.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_AUTOMATIC_SAVE;
ColorWaveShort.speed_min = EVISION_KB_SPEED_SLOWEST;
ColorWaveShort.speed_max = EVISION_KB_SPEED_FASTEST;
ColorWaveShort.speed = EVISION_KB_SPEED_NORMAL;
ColorWaveShort.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
ColorWaveShort.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
ColorWaveShort.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
ColorWaveShort.direction = MODE_DIRECTION_LEFT;
ColorWaveShort.colors_min = 1;
ColorWaveShort.colors_max = 1;
ColorWaveShort.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorWaveShort.colors.resize(1);
modes.push_back(ColorWaveShort);
mode ColorWheel;
ColorWheel.name = "Color Wheel";
ColorWheel.value = EVISION_KB_MODE_COLOR_WHEEL;
ColorWheel.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
ColorWheel.speed_min = EVISION_KB_SPEED_SLOWEST;
ColorWheel.speed_max = EVISION_KB_SPEED_FASTEST;
ColorWheel.speed = EVISION_KB_SPEED_NORMAL;
ColorWheel.colors_min = 1;
ColorWheel.colors_max = 1;
ColorWheel.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorWheel.name = "Color Wheel";
ColorWheel.value = EVISION_KB_MODE_COLOR_WHEEL;
ColorWheel.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_AUTOMATIC_SAVE;
ColorWheel.speed_min = EVISION_KB_SPEED_SLOWEST;
ColorWheel.speed_max = EVISION_KB_SPEED_FASTEST;
ColorWheel.speed = EVISION_KB_SPEED_NORMAL;
ColorWheel.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
ColorWheel.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
ColorWheel.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
ColorWheel.direction = MODE_DIRECTION_LEFT;
ColorWheel.colors_min = 1;
ColorWheel.colors_max = 1;
ColorWheel.color_mode = MODE_COLORS_MODE_SPECIFIC;
ColorWheel.colors.resize(1);
modes.push_back(ColorWheel);
mode SpectrumCycle;
SpectrumCycle.name = "Spectrum Cycle";
SpectrumCycle.value = EVISION_KB_MODE_SPECTRUM_CYCLE;
SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_AUTOMATIC_SAVE;
SpectrumCycle.speed_min = EVISION_KB_SPEED_SLOWEST;
SpectrumCycle.speed_max = EVISION_KB_SPEED_FASTEST;
SpectrumCycle.speed = EVISION_KB_SPEED_NORMAL;
SpectrumCycle.color_mode = MODE_COLORS_NONE;
SpectrumCycle.name = "Spectrum Cycle";
SpectrumCycle.value = EVISION_KB_MODE_SPECTRUM_CYCLE;
SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
SpectrumCycle.speed_min = EVISION_KB_SPEED_SLOWEST;
SpectrumCycle.speed_max = EVISION_KB_SPEED_FASTEST;
SpectrumCycle.speed = EVISION_KB_SPEED_NORMAL;
SpectrumCycle.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
SpectrumCycle.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
SpectrumCycle.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
SpectrumCycle.color_mode = MODE_COLORS_NONE;
modes.push_back(SpectrumCycle);
mode Breathing;
Breathing.name = "Breathing";
Breathing.value = EVISION_KB_MODE_BREATHING;
Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Breathing.speed_min = EVISION_KB_SPEED_SLOWEST;
Breathing.speed_max = EVISION_KB_SPEED_FASTEST;
Breathing.speed = EVISION_KB_SPEED_NORMAL;
Breathing.colors_min = 1;
Breathing.colors_max = 1;
Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC;
Breathing.name = "Breathing";
Breathing.value = EVISION_KB_MODE_BREATHING;
Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Breathing.speed_min = EVISION_KB_SPEED_SLOWEST;
Breathing.speed_max = EVISION_KB_SPEED_FASTEST;
Breathing.speed = EVISION_KB_SPEED_NORMAL;
Breathing.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
Breathing.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
Breathing.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
Breathing.colors_min = 1;
Breathing.colors_max = 1;
Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC;
Breathing.colors.resize(1);
modes.push_back(Breathing);
mode Hurricane;
Hurricane.name = "Hurricane";
Hurricane.value = EVISION_KB_MODE_HURRICANE;
Hurricane.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Hurricane.speed_min = EVISION_KB_SPEED_SLOWEST;
Hurricane.speed_max = EVISION_KB_SPEED_FASTEST;
Hurricane.speed = EVISION_KB_SPEED_NORMAL;
Hurricane.colors_min = 1;
Hurricane.colors_max = 1;
Hurricane.color_mode = MODE_COLORS_MODE_SPECIFIC;
Hurricane.name = "Hurricane";
Hurricane.value = EVISION_KB_MODE_HURRICANE;
Hurricane.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Hurricane.speed_min = EVISION_KB_SPEED_SLOWEST;
Hurricane.speed_max = EVISION_KB_SPEED_FASTEST;
Hurricane.speed = EVISION_KB_SPEED_NORMAL;
Hurricane.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
Hurricane.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
Hurricane.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
Hurricane.colors_min = 1;
Hurricane.colors_max = 1;
Hurricane.color_mode = MODE_COLORS_MODE_SPECIFIC;
Hurricane.colors.resize(1);
modes.push_back(Hurricane);
mode Accumulate;
Accumulate.name = "Accumulate";
Accumulate.value = EVISION_KB_MODE_ACCUMULATE;
Accumulate.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Accumulate.speed_min = EVISION_KB_SPEED_SLOWEST;
Accumulate.speed_max = EVISION_KB_SPEED_FASTEST;
Accumulate.speed = EVISION_KB_SPEED_NORMAL;
Accumulate.colors_min = 1;
Accumulate.colors_max = 1;
Accumulate.color_mode = MODE_COLORS_MODE_SPECIFIC;
Accumulate.name = "Accumulate";
Accumulate.value = EVISION_KB_MODE_ACCUMULATE;
Accumulate.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Accumulate.speed_min = EVISION_KB_SPEED_SLOWEST;
Accumulate.speed_max = EVISION_KB_SPEED_FASTEST;
Accumulate.speed = EVISION_KB_SPEED_NORMAL;
Accumulate.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
Accumulate.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
Accumulate.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
Accumulate.colors_min = 1;
Accumulate.colors_max = 1;
Accumulate.color_mode = MODE_COLORS_MODE_SPECIFIC;
Accumulate.colors.resize(1);
modes.push_back(Accumulate);
mode Starlight;
Starlight.name = "Starlight";
Starlight.value = EVISION_KB_MODE_STARLIGHT_FAST;
Starlight.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Starlight.speed_min = EVISION_KB_SPEED_SLOWEST;
Starlight.speed_max = EVISION_KB_SPEED_FASTEST;
Starlight.speed = EVISION_KB_SPEED_NORMAL;
Starlight.colors_min = 1;
Starlight.colors_max = 1;
Starlight.color_mode = MODE_COLORS_MODE_SPECIFIC;
Starlight.name = "Starlight";
Starlight.value = EVISION_KB_MODE_STARLIGHT_FAST;
Starlight.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Starlight.speed_min = EVISION_KB_SPEED_SLOWEST;
Starlight.speed_max = EVISION_KB_SPEED_FASTEST;
Starlight.speed = EVISION_KB_SPEED_NORMAL;
Starlight.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
Starlight.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
Starlight.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
Starlight.colors_min = 1;
Starlight.colors_max = 1;
Starlight.color_mode = MODE_COLORS_MODE_SPECIFIC;
Starlight.colors.resize(1);
modes.push_back(Starlight);
mode Visor;
Visor.name = "Visor";
Visor.value = EVISION_KB_MODE_VISOR;
Visor.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Visor.speed_min = EVISION_KB_SPEED_SLOWEST;
Visor.speed_max = EVISION_KB_SPEED_FASTEST;
Visor.speed = EVISION_KB_SPEED_NORMAL;
Visor.colors_min = 1;
Visor.colors_max = 1;
Visor.color_mode = MODE_COLORS_MODE_SPECIFIC;
Visor.name = "Visor";
Visor.value = EVISION_KB_MODE_VISOR;
Visor.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Visor.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
Visor.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
Visor.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
Visor.colors_min = 1;
Visor.colors_max = 1;
Visor.color_mode = MODE_COLORS_MODE_SPECIFIC;
Visor.colors.resize(1);
modes.push_back(Visor);
mode Static;
Static.name = "Static";
Static.value = EVISION_KB_MODE_STATIC;
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Static.colors_min = 1;
Static.colors_max = 1;
Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
Static.name = "Static";
Static.value = EVISION_KB_MODE_STATIC;
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Static.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
Static.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
Static.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
Static.colors_min = 1;
Static.colors_max = 1;
Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
Static.colors.resize(1);
modes.push_back(Static);
mode RainbowCircle;
RainbowCircle.name = "Rainbow Circle";
RainbowCircle.value = EVISION_KB_MODE_RAINBOW_WAVE_CIRCLE;
RainbowCircle.flags = MODE_FLAG_AUTOMATIC_SAVE;
RainbowCircle.color_mode = MODE_COLORS_NONE;
RainbowCircle.name = "Rainbow Circle";
RainbowCircle.value = EVISION_KB_MODE_RAINBOW_WAVE_CIRCLE;
RainbowCircle.flags = MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
RainbowCircle.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
RainbowCircle.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
RainbowCircle.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
RainbowCircle.color_mode = MODE_COLORS_RANDOM;
modes.push_back(RainbowCircle);
mode VerticalRainbow;
VerticalRainbow.name = "Vertical Rainbow";
VerticalRainbow.value = EVISION_KB_MODE_RAINBOW_WAVE_VERTICAL;
VerticalRainbow.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_UD | MODE_FLAG_AUTOMATIC_SAVE;
VerticalRainbow.speed_min = EVISION_KB_SPEED_SLOWEST;
VerticalRainbow.speed_max = EVISION_KB_SPEED_FASTEST;
VerticalRainbow.speed = EVISION_KB_SPEED_NORMAL;
VerticalRainbow.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
VerticalRainbow.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
VerticalRainbow.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
VerticalRainbow.direction = MODE_DIRECTION_UP;
VerticalRainbow.colors_min = 1;
VerticalRainbow.colors_max = 1;
VerticalRainbow.color_mode = MODE_COLORS_MODE_SPECIFIC;
VerticalRainbow.colors.resize(1);
modes.push_back(VerticalRainbow);
mode Blooming;
Blooming.name = "Blooming";
Blooming.value = EVISION_KB_MODE_BLOOMING;
Blooming.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_AUTOMATIC_SAVE;
Blooming.speed_min = EVISION_KB_SPEED_SLOWEST;
Blooming.speed_max = EVISION_KB_SPEED_FASTEST;
Blooming.speed = EVISION_KB_SPEED_NORMAL;
Blooming.color_mode = MODE_COLORS_NONE;
Blooming.name = "Blooming";
Blooming.value = EVISION_KB_MODE_BLOOMING;
Blooming.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Blooming.speed_min = EVISION_KB_SPEED_SLOWEST;
Blooming.speed_max = EVISION_KB_SPEED_FASTEST;
Blooming.speed = EVISION_KB_SPEED_NORMAL;
Blooming.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
Blooming.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
Blooming.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
Blooming.color_mode = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
modes.push_back(Blooming);
mode Reactive;
Reactive.name = "Reactive";
Reactive.value = EVISION_KB_MODE_REACTIVE;
Reactive.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Reactive.speed_min = EVISION_KB_SPEED_SLOWEST;
Reactive.speed_max = EVISION_KB_SPEED_FASTEST;
Reactive.speed = EVISION_KB_SPEED_NORMAL;
Reactive.colors_min = 1;
Reactive.colors_max = 1;
Reactive.color_mode = MODE_COLORS_MODE_SPECIFIC;
Reactive.name = "Reactive";
Reactive.value = EVISION_KB_MODE_REACTIVE;
Reactive.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
Reactive.speed_min = EVISION_KB_SPEED_SLOWEST;
Reactive.speed_max = EVISION_KB_SPEED_FASTEST;
Reactive.speed = EVISION_KB_SPEED_NORMAL;
Reactive.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
Reactive.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
Reactive.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
Reactive.colors_min = 1;
Reactive.colors_max = 1;
Reactive.color_mode = MODE_COLORS_MODE_SPECIFIC;
Reactive.colors.resize(1);
modes.push_back(Reactive);
mode ReactiveRipple;
ReactiveRipple.name = "Reactive Ripple";
ReactiveRipple.value = EVISION_KB_MODE_REACTIVE_RIPPLE;
ReactiveRipple.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
ReactiveRipple.speed_min = EVISION_KB_SPEED_SLOWEST;
ReactiveRipple.speed_max = EVISION_KB_SPEED_FASTEST;
ReactiveRipple.speed = EVISION_KB_SPEED_NORMAL;
ReactiveRipple.colors_min = 1;
ReactiveRipple.colors_max = 1;
ReactiveRipple.color_mode = MODE_COLORS_MODE_SPECIFIC;
ReactiveRipple.name = "Reactive Ripple";
ReactiveRipple.value = EVISION_KB_MODE_REACTIVE_RIPPLE;
ReactiveRipple.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
ReactiveRipple.speed_min = EVISION_KB_SPEED_SLOWEST;
ReactiveRipple.speed_max = EVISION_KB_SPEED_FASTEST;
ReactiveRipple.speed = EVISION_KB_SPEED_NORMAL;
ReactiveRipple.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
ReactiveRipple.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
ReactiveRipple.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
ReactiveRipple.colors_min = 1;
ReactiveRipple.colors_max = 1;
ReactiveRipple.color_mode = MODE_COLORS_MODE_SPECIFIC;
ReactiveRipple.colors.resize(1);
modes.push_back(ReactiveRipple);
mode ReactiveLine;
ReactiveLine.name = "Reactive Line";
ReactiveLine.value = EVISION_KB_MODE_REACTIVE_LINE;
ReactiveLine.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
ReactiveLine.speed_min = EVISION_KB_SPEED_SLOWEST;
ReactiveLine.speed_max = EVISION_KB_SPEED_FASTEST;
ReactiveLine.speed = EVISION_KB_SPEED_NORMAL;
ReactiveLine.colors_min = 1;
ReactiveLine.colors_max = 1;
ReactiveLine.color_mode = MODE_COLORS_MODE_SPECIFIC;
ReactiveLine.name = "Reactive Line";
ReactiveLine.value = EVISION_KB_MODE_REACTIVE_LINE;
ReactiveLine.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_AUTOMATIC_SAVE;
ReactiveLine.speed_min = EVISION_KB_SPEED_SLOWEST;
ReactiveLine.speed_max = EVISION_KB_SPEED_FASTEST;
ReactiveLine.speed = EVISION_KB_SPEED_NORMAL;
ReactiveLine.brightness_min = EVISION_KB_BRIGHTNESS_LOWEST;
ReactiveLine.brightness_max = EVISION_KB_BRIGHTNESS_HIGHEST;
ReactiveLine.brightness = EVISION_KB_BRIGHTNESS_HIGHEST;
ReactiveLine.colors_min = 1;
ReactiveLine.colors_max = 1;
ReactiveLine.color_mode = MODE_COLORS_MODE_SPECIFIC;
ReactiveLine.colors.resize(1);
modes.push_back(ReactiveLine);
@ -314,14 +392,14 @@ void RGBController_EVisionKeyboard::DeviceUpdateMode()
}
controller->SendKeyboardModeEx
(
modes[active_mode].value,
EVISION_KB_BRIGHTNESS_HIGHEST,
modes[active_mode].speed,
0,
random,
red,
grn,
blu
);
(
modes[active_mode].value,
modes[active_mode].brightness,
modes[active_mode].speed,
modes[active_mode].direction,
random,
red,
grn,
blu
);
}