mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2025-12-23 23:37:48 -05:00
414 lines
22 KiB
C++
414 lines
22 KiB
C++
/*---------------------------------------------------------*\
|
|
| RGBController_EpomakerController.cpp |
|
|
| |
|
|
| RGBController for Epomaker keyboard |
|
|
| |
|
|
| Alvaro Munoz (alvaromunoz) 05 Jun 2023 |
|
|
| |
|
|
| This file is part of the OpenRGB project |
|
|
| SPDX-License-Identifier: GPL-2.0-or-later |
|
|
\*---------------------------------------------------------*/
|
|
|
|
#include "RGBControllerKeyNames.h"
|
|
#include "RGBController_EpomakerController.h"
|
|
|
|
/**------------------------------------------------------------------*\
|
|
@name Epomaker TH80 Pro
|
|
@category Keyboard
|
|
@type USB
|
|
@save :robot:
|
|
@direct :x:
|
|
@effects :white_check_mark:
|
|
@detectors DetectEpomakerControllers
|
|
@comment
|
|
\*-------------------------------------------------------------------*/
|
|
|
|
RGBController_EpomakerController::RGBController_EpomakerController(EpomakerController* controller_ptr)
|
|
{
|
|
controller = controller_ptr;
|
|
|
|
name = controller->GetDeviceName();
|
|
vendor = "Epomaker";
|
|
type = DEVICE_TYPE_KEYBOARD;
|
|
description = controller->GetDeviceName();
|
|
serial = controller->GetSerial();
|
|
location = controller->GetLocation();
|
|
|
|
mode Off;
|
|
Off.name = "Off";
|
|
Off.value = 0;
|
|
Off.flags = 0;
|
|
Off.color_mode = MODE_COLORS_NONE;
|
|
modes.push_back(Off);
|
|
|
|
mode Always_on;
|
|
Always_on.name = "Direct";
|
|
Always_on.value = EPOMAKER_MODE_ALWAYS_ON;
|
|
Always_on.flags = MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
|
Always_on.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Always_on.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Always_on.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Always_on.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
modes.push_back(Always_on);
|
|
|
|
mode Dynamic_breathing;
|
|
Dynamic_breathing.name = "Breathing";
|
|
Dynamic_breathing.value = EPOMAKER_MODE_DYNAMIC_BREATHING;
|
|
Dynamic_breathing.flags = MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR;
|
|
Dynamic_breathing.color_mode = MODE_COLORS_PER_LED;
|
|
Dynamic_breathing.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Dynamic_breathing.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Dynamic_breathing.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Dynamic_breathing.speed_min = EPOMAKER_SPEED_MIN;
|
|
Dynamic_breathing.speed_max = EPOMAKER_SPEED_MAX;
|
|
Dynamic_breathing.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Dynamic_breathing);
|
|
|
|
mode Spectrum_cycle;
|
|
Spectrum_cycle.name = "Spectrum Cycle";
|
|
Spectrum_cycle.value = EPOMAKER_MODE_SPECTRUM_CYCLE;
|
|
Spectrum_cycle.flags = MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED;
|
|
Spectrum_cycle.color_mode = MODE_COLORS_NONE;
|
|
Spectrum_cycle.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Spectrum_cycle.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Spectrum_cycle.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Spectrum_cycle.speed_min = EPOMAKER_SPEED_MIN;
|
|
Spectrum_cycle.speed_max = EPOMAKER_SPEED_MAX_SPECIAL;
|
|
Spectrum_cycle.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Spectrum_cycle);
|
|
|
|
mode Drift;
|
|
Drift.name = "Drift";
|
|
Drift.value = EPOMAKER_MODE_DRIFT;
|
|
Drift.flags = MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_DIRECTION_UD;
|
|
Drift.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Drift.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Drift.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Drift.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Drift.speed_min = EPOMAKER_SPEED_MIN;
|
|
Drift.speed_max = EPOMAKER_SPEED_MAX;
|
|
Drift.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Drift);
|
|
|
|
mode Waves_ripple;
|
|
Waves_ripple.name = "Waves ripple";
|
|
Waves_ripple.value = EPOMAKER_MODE_WAVES_RIPPLE;
|
|
Waves_ripple.flags = MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
|
Waves_ripple.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Waves_ripple.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Waves_ripple.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Waves_ripple.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
modes.push_back(Waves_ripple);
|
|
|
|
mode Stars_twinkle;
|
|
Stars_twinkle.name = "Stars twinkle";
|
|
Stars_twinkle.value = EPOMAKER_MODE_STARS_TWINKLE;
|
|
Stars_twinkle.flags = MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
|
Stars_twinkle.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Stars_twinkle.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Stars_twinkle.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Stars_twinkle.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Stars_twinkle.speed_min = EPOMAKER_SPEED_MIN;
|
|
Stars_twinkle.speed_max = EPOMAKER_SPEED_MAX;
|
|
Stars_twinkle.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Stars_twinkle);
|
|
|
|
mode Steady_stream;
|
|
Steady_stream.name = "Steady stream";
|
|
Steady_stream.value = EPOMAKER_MODE_STEADY_STREAM;
|
|
Steady_stream.flags = MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_DIRECTION_LR;
|
|
Steady_stream.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Steady_stream.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Steady_stream.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Steady_stream.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Steady_stream.speed_min = EPOMAKER_SPEED_MIN;
|
|
Steady_stream.speed_max = EPOMAKER_SPEED_MAX;
|
|
Steady_stream.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Steady_stream);
|
|
|
|
mode Shadowing;
|
|
Shadowing.name = "Reactive";
|
|
Shadowing.value = EPOMAKER_MODE_SHADOWING;
|
|
Shadowing.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
|
Shadowing.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Shadowing.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Shadowing.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Shadowing.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Shadowing.speed_min = EPOMAKER_SPEED_MIN;
|
|
Shadowing.speed_max = EPOMAKER_SPEED_MAX;
|
|
Shadowing.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Shadowing);
|
|
|
|
mode Peaks_rising;
|
|
Peaks_rising.name = "Peaks rising one after another";
|
|
Peaks_rising.value = EPOMAKER_MODE_PEAKS_RISING_ONE_AFTER_ANOTHER;
|
|
Peaks_rising.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
|
Peaks_rising.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Peaks_rising.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Peaks_rising.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Peaks_rising.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Peaks_rising.speed_min = EPOMAKER_SPEED_MIN;
|
|
Peaks_rising.speed_max = EPOMAKER_SPEED_MAX;
|
|
Peaks_rising.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Peaks_rising);
|
|
|
|
mode Sine_wave;
|
|
Sine_wave.name = "Sine wave";
|
|
Sine_wave.value = EPOMAKER_MODE_SINE_WAVE;
|
|
Sine_wave.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
|
Sine_wave.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Sine_wave.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Sine_wave.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Sine_wave.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Sine_wave.speed_min = EPOMAKER_SPEED_MIN;
|
|
Sine_wave.speed_max = EPOMAKER_SPEED_MAX;
|
|
Sine_wave.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Sine_wave);
|
|
|
|
mode Caispring;
|
|
Caispring.name = "Caispring Surging";
|
|
Caispring.value = EPOMAKER_MODE_CAISPRING_SURGING;
|
|
Caispring.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_DIRECTION_LR;
|
|
Caispring.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Caispring.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Caispring.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Caispring.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Caispring.speed_min = EPOMAKER_SPEED_MIN;
|
|
Caispring.speed_max = EPOMAKER_SPEED_MAX;
|
|
Caispring.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Caispring);
|
|
|
|
mode Flowers_blooming;
|
|
Flowers_blooming.name = "Flowers blooming";
|
|
Flowers_blooming.value = EPOMAKER_MODE_FLOWERS_BLOOMING;
|
|
Flowers_blooming.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_DIRECTION_LR;
|
|
Flowers_blooming.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Flowers_blooming.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Flowers_blooming.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Flowers_blooming.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Flowers_blooming.speed_min = EPOMAKER_SPEED_MIN;
|
|
Flowers_blooming.speed_max = EPOMAKER_SPEED_MAX;
|
|
Flowers_blooming.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Flowers_blooming);
|
|
|
|
mode Laser;
|
|
Laser.name = "Laser";
|
|
Laser.value = EPOMAKER_MODE_LASER;
|
|
Laser.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
|
Laser.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Laser.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Laser.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Laser.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Laser.speed_min = EPOMAKER_SPEED_MIN;
|
|
Laser.speed_max = EPOMAKER_SPEED_MAX;
|
|
Laser.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Laser);
|
|
|
|
mode Peak_turn;
|
|
Peak_turn.name = "Peak turn";
|
|
Peak_turn.value = EPOMAKER_MODE_PEAK_TURN;
|
|
Peak_turn.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_DIRECTION_LR;
|
|
Peak_turn.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Peak_turn.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Peak_turn.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Peak_turn.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Peak_turn.speed_min = EPOMAKER_SPEED_MIN;
|
|
Peak_turn.speed_max = EPOMAKER_SPEED_MAX_SPECIAL;
|
|
Peak_turn.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Peak_turn);
|
|
|
|
mode Inclined_rain;
|
|
Inclined_rain.name = "Inclined Rain";
|
|
Inclined_rain.value = EPOMAKER_MODE_INCLINED_RAIN;
|
|
Inclined_rain.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
|
Inclined_rain.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Inclined_rain.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Inclined_rain.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Inclined_rain.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Inclined_rain.speed_min = EPOMAKER_SPEED_MIN;
|
|
Inclined_rain.speed_max = EPOMAKER_SPEED_MAX;
|
|
Inclined_rain.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Inclined_rain);
|
|
|
|
mode Snow;
|
|
Snow.name = "Snow";
|
|
Snow.value = EPOMAKER_MODE_SNOW;
|
|
Snow.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
|
Snow.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Snow.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Snow.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Snow.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Snow.speed_min = EPOMAKER_SPEED_MIN;
|
|
Snow.speed_max = EPOMAKER_SPEED_MAX_SPECIAL;
|
|
Snow.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Snow);
|
|
|
|
mode Meteor;
|
|
Meteor.name = "Meteor";
|
|
Meteor.value = EPOMAKER_MODE_METEOR;
|
|
Meteor.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
|
Meteor.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Meteor.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Meteor.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Meteor.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Meteor.speed_min = EPOMAKER_SPEED_MIN;
|
|
Meteor.speed_max = EPOMAKER_SPEED_MAX_SPECIAL;
|
|
Meteor.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Meteor);
|
|
|
|
mode Through_the_snow;
|
|
Through_the_snow.name = "Through the snow (non trace)";
|
|
Through_the_snow.value = EPOMAKER_MODE_THROUGH_THE_SNOW_NON_TRACE;
|
|
Through_the_snow.flags = MODE_FLAG_AUTOMATIC_SAVE | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
|
Through_the_snow.color_mode = MODE_COLORS_PER_LED | MODE_COLORS_RANDOM;
|
|
Through_the_snow.brightness_min = EPOMAKER_BRIGHTNESS_MIN;
|
|
Through_the_snow.brightness_max = EPOMAKER_BRIGHTNESS_MAX;
|
|
Through_the_snow.brightness = EPOMAKER_BRIGHTNESS_DEFAULT;
|
|
Through_the_snow.speed_min = EPOMAKER_SPEED_MIN;
|
|
Through_the_snow.speed_max = EPOMAKER_SPEED_MAX_SPECIAL;
|
|
Through_the_snow.speed = EPOMAKER_SPEED_DEFAULT;
|
|
modes.push_back(Through_the_snow);
|
|
|
|
SetupZones();
|
|
}
|
|
|
|
RGBController_EpomakerController::~RGBController_EpomakerController()
|
|
{
|
|
delete controller;
|
|
}
|
|
|
|
void RGBController_EpomakerController::DeviceUpdateLEDs()
|
|
{
|
|
unsigned char red = RGBGetRValue(colors[0]);
|
|
unsigned char grn = RGBGetGValue(colors[0]);
|
|
unsigned char blu = RGBGetBValue(colors[0]);
|
|
|
|
controller->SetDazzle(modes[active_mode].color_mode == MODE_COLORS_RANDOM);
|
|
controller->SetColor(red, grn, blu);
|
|
}
|
|
|
|
void RGBController_EpomakerController::DeviceUpdateMode()
|
|
{
|
|
if(modes[active_mode].value == EPOMAKER_MODE_DRIFT)
|
|
{
|
|
if(modes[active_mode].direction == MODE_DIRECTION_LEFT)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_DRIFT_LEFT);
|
|
}
|
|
else if(modes[active_mode].direction == MODE_DIRECTION_RIGHT)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_DRIFT_RIGHT);
|
|
}
|
|
else if(modes[active_mode].direction == MODE_DIRECTION_UP)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_DRIFT_UP);
|
|
}
|
|
else if(modes[active_mode].direction == MODE_DIRECTION_DOWN)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_DRIFT_DOWN);
|
|
}
|
|
}
|
|
else if(modes[active_mode].value == EPOMAKER_MODE_STEADY_STREAM)
|
|
{
|
|
/*---------------------------------------------------------*\
|
|
| TODO: These OPTIONS (zig-zag, return) should not |
|
|
| be DIRECTIONS (left, right) |
|
|
\*---------------------------------------------------------*/
|
|
if(modes[active_mode].direction == MODE_DIRECTION_LEFT)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_STEADY_STREAM_ZIG_ZAG);
|
|
}
|
|
else if(modes[active_mode].direction == MODE_DIRECTION_RIGHT)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_STEADY_STREAM_RETURN);
|
|
}
|
|
}
|
|
else if(modes[active_mode].value == EPOMAKER_MODE_CAISPRING_SURGING)
|
|
{
|
|
/*---------------------------------------------------------*\
|
|
| TODO: These OPTIONS (in, out) should not |
|
|
| be DIRECTIONS (left, right) |
|
|
\*---------------------------------------------------------*/
|
|
if(modes[active_mode].direction == MODE_DIRECTION_LEFT)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_CAISPRING_SURGING_OUT);
|
|
}
|
|
else if(modes[active_mode].direction == MODE_DIRECTION_RIGHT)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_CAISPRING_SURGING_IN);
|
|
}
|
|
}
|
|
else if(modes[active_mode].value == EPOMAKER_MODE_FLOWERS_BLOOMING)
|
|
{
|
|
if(modes[active_mode].direction == MODE_DIRECTION_LEFT)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_FLOWERS_BLOOMING_LEFT);
|
|
}
|
|
else if(modes[active_mode].direction == MODE_DIRECTION_RIGHT)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_FLOWERS_BLOOMING_RIGHT);
|
|
}
|
|
}
|
|
else if(modes[active_mode].value == EPOMAKER_MODE_PEAK_TURN)
|
|
{
|
|
/*---------------------------------------------------------*\
|
|
| TODO: These OPTIONS (clockwise, anti-clockwise) |
|
|
| should not be DIRECTIONS (left, right) |
|
|
\*---------------------------------------------------------*/
|
|
if(modes[active_mode].direction == MODE_DIRECTION_LEFT)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_PEAK_TURN_ANTI_CLOCKWISE);
|
|
}
|
|
else if(modes[active_mode].direction == MODE_DIRECTION_RIGHT)
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_PEAK_TURN_CLOCKWISE);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
controller->SetOption(EPOMAKER_OPTION_DEFAULT);
|
|
}
|
|
|
|
controller->SetDazzle(modes[active_mode].color_mode == MODE_COLORS_RANDOM);
|
|
|
|
controller->SetMode(modes[active_mode].value, modes[active_mode].speed, modes[active_mode].brightness);
|
|
}
|
|
|
|
void RGBController_EpomakerController::SetupZones()
|
|
{
|
|
zone new_zone;
|
|
new_zone.name = "Keyboard";
|
|
new_zone.type = ZONE_TYPE_SINGLE;
|
|
new_zone.leds_min = 1;
|
|
new_zone.leds_max = 1;
|
|
new_zone.leds_count = 1;
|
|
new_zone.matrix_map = NULL;
|
|
|
|
zones.push_back(new_zone);
|
|
|
|
led keyboard_led;
|
|
keyboard_led.name = "Keyboard LEDs";
|
|
keyboard_led.value = 0x00;
|
|
leds.push_back(keyboard_led);
|
|
|
|
SetupColors();
|
|
}
|
|
|
|
|
|
void RGBController_EpomakerController::ResizeZone(int /*zone*/, int /*new_size*/)
|
|
{
|
|
/*---------------------------------------------------------*\
|
|
| Not implemented |
|
|
\*---------------------------------------------------------*/
|
|
}
|
|
|
|
void RGBController_EpomakerController::UpdateZoneLEDs(int /*zone*/)
|
|
{
|
|
DeviceUpdateLEDs();
|
|
}
|
|
|
|
void RGBController_EpomakerController::UpdateSingleLED(int /*led*/)
|
|
{
|
|
DeviceUpdateLEDs();
|
|
}
|