From 36ebdbec2c26a8dd6b1903977aaee45c1fe70081 Mon Sep 17 00:00:00 2001 From: Flora Aubry Date: Mon, 6 Mar 2023 16:25:53 +0000 Subject: [PATCH] Added missing mode_flags to EVision controller, added GMMK TKL detection --- .../EVisionKeyboardControllerDetect.cpp | 6 +- .../RGBController_EVisionKeyboard.cpp | 334 +++++++++++------- 2 files changed, 210 insertions(+), 130 deletions(-) diff --git a/Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp b/Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp index d5ae03d3..0a79c229 100644 --- a/Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp +++ b/Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp @@ -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); diff --git a/Controllers/EVisionKeyboardController/RGBController_EVisionKeyboard.cpp b/Controllers/EVisionKeyboardController/RGBController_EVisionKeyboard.cpp index f64152a4..70717d3f 100644 --- a/Controllers/EVisionKeyboardController/RGBController_EVisionKeyboard.cpp +++ b/Controllers/EVisionKeyboardController/RGBController_EVisionKeyboard.cpp @@ -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 + ); }