mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-04-04 06:11:07 -04:00
Clean up Redragon K556 code and add speed and color control
This commit is contained in:
@@ -39,6 +39,40 @@ void RedragonK556Controller::SetKeyboardColors
|
||||
}
|
||||
}
|
||||
|
||||
void RedragonK556Controller::SendKeyboardMode
|
||||
(
|
||||
unsigned char mode
|
||||
)
|
||||
{
|
||||
SendKeyboardParameter(REDRAGON_K556_PARAMETER_MODE, 1, &mode);
|
||||
}
|
||||
|
||||
void RedragonK556Controller::SendKeyboardModeEx
|
||||
(
|
||||
unsigned char mode,
|
||||
unsigned char brightness,
|
||||
unsigned char speed,
|
||||
unsigned char direction,
|
||||
unsigned char random_flag,
|
||||
unsigned char red,
|
||||
unsigned char green,
|
||||
unsigned char blue
|
||||
)
|
||||
{
|
||||
unsigned char parameter_data[8];
|
||||
|
||||
parameter_data[0] = mode;
|
||||
parameter_data[1] = brightness;
|
||||
parameter_data[2] = speed;
|
||||
parameter_data[3] = direction;
|
||||
parameter_data[4] = random_flag;
|
||||
parameter_data[5] = red;
|
||||
parameter_data[6] = green;
|
||||
parameter_data[7] = blue;
|
||||
|
||||
SendKeyboardParameter(0, 8, parameter_data);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------------------------------*\
|
||||
| Private packet sending functions. |
|
||||
\*-------------------------------------------------------------------------------------------------*/
|
||||
@@ -74,9 +108,9 @@ void RedragonK556Controller::SendKeyboardBegin()
|
||||
| fixed |
|
||||
\*-----------------------------------------------------*/
|
||||
usb_buf[0x00] = 0x04;
|
||||
usb_buf[0x01] = 0x01;
|
||||
usb_buf[0x01] = REDRAGON_K556_COMMAND_BEGIN;
|
||||
usb_buf[0x02] = 0x00;
|
||||
usb_buf[0x03] = 0x01;
|
||||
usb_buf[0x03] = REDRAGON_K556_COMMAND_BEGIN;
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Send packet |
|
||||
@@ -100,9 +134,9 @@ void RedragonK556Controller::SendKeyboardEnd()
|
||||
| fixed |
|
||||
\*-----------------------------------------------------*/
|
||||
usb_buf[0x00] = 0x04;
|
||||
usb_buf[0x01] = 0x02;
|
||||
usb_buf[0x01] = REDRAGON_K556_COMMAND_END;
|
||||
usb_buf[0x02] = 0x00;
|
||||
usb_buf[0x03] = 0x02;
|
||||
usb_buf[0x03] = REDRAGON_K556_COMMAND_END;
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Send packet |
|
||||
@@ -152,9 +186,11 @@ void RedragonK556Controller::SendKeyboardData
|
||||
hid_read(dev, (unsigned char *)usb_buf, 64);
|
||||
}
|
||||
|
||||
void RedragonK556Controller::SendKeyboardMode
|
||||
void RedragonK556Controller::SendKeyboardParameter
|
||||
(
|
||||
unsigned char mode
|
||||
unsigned char parameter,
|
||||
unsigned char parameter_size,
|
||||
unsigned char* parameter_data
|
||||
)
|
||||
{
|
||||
char usb_buf[64];
|
||||
@@ -168,11 +204,15 @@ void RedragonK556Controller::SendKeyboardMode
|
||||
| Set up Keyboard Parameter (0x06) packet |
|
||||
\*-----------------------------------------------------*/
|
||||
usb_buf[0x00] = 0x04;
|
||||
usb_buf[0x03] = 0x06;
|
||||
usb_buf[0x04] = 0x01;
|
||||
usb_buf[0x03] = REDRAGON_K556_COMMAND_SET_PARAMETER;
|
||||
usb_buf[0x04] = parameter_size;
|
||||
usb_buf[0x05] = parameter;
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Copy in data bytes |
|
||||
\*-----------------------------------------------------*/
|
||||
memcpy(&usb_buf[0x08], parameter_data, parameter_size);
|
||||
|
||||
usb_buf[0x08] = mode;
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Compute Checksum |
|
||||
\*-----------------------------------------------------*/
|
||||
|
||||
@@ -16,27 +16,77 @@
|
||||
|
||||
#define REDRAGON_K556_MAX_PACKET_SIZE ( 0x36 ) /* max packet size for color*/
|
||||
/* update packets */
|
||||
enum
|
||||
{
|
||||
REDRAGON_K556_COMMAND_BEGIN = 0x01, /* Begin packet command */
|
||||
REDRAGON_K556_COMMAND_END = 0x02, /* End packet command */
|
||||
REDRAGON_K556_COMMAND_SET_PARAMETER = 0x06, /* Set parameter command */
|
||||
REDRAGON_K556_COMMAND_READ_CUSTOM_COLOR_DATA = 0x10, /* Read custom color data */
|
||||
REDRAGON_K556_COMMAND_WRITE_CUSTOM_COLOR_DATA = 0x11, /* Write custom color data */
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
REDRAGON_K556_MODE_COLOR_WAVE_SHORT = 0x01, /* "Go with the stream" */
|
||||
REDRAGON_K556_MODE_COLOR_WAVE_LONG = 0x02, /* "Clouds fly" */
|
||||
REDRAGON_K556_MODE_COLOR_WHEEL = 0x03, /* "Winding paths" */
|
||||
REDRAGON_K556_MODE_SPECTRUM_CYCLE = 0x04, /* "The trial of light" */
|
||||
REDRAGON_K556_MODE_BREATHING = 0x05, /* "Breathing" */
|
||||
REDRAGON_K556_MODE_STATIC = 0x06, /* "Normally on" */
|
||||
REDRAGON_K556_MODE_REACTIVE = 0x07, /* "Pass without trace" */
|
||||
REDRAGON_K556_MODE_REACTIVE_RIPPLE = 0x08, /* "Ripple graff" */
|
||||
REDRAGON_K556_MODE_REACTIVE_LINE = 0x09, /* "Fast run without trace" */
|
||||
REDRAGON_K556_MODE_STARLIGHT_FAST = 0x0A, /* "Swift action" */
|
||||
REDRAGON_K556_MODE_BLOOMING = 0x0B, /* "Flowers blooming" */
|
||||
REDRAGON_K556_MODE_RAINBOW_WAVE_VERTICAL = 0x0C, /* "Snow winter jasmine" */
|
||||
REDRAGON_K556_MODE_HURRICANE = 0x0D, /* "Hurricane" */
|
||||
REDRAGON_K556_MODE_ACCUMULATE = 0x0E, /* "Accumulate" */
|
||||
REDRAGON_K556_MODE_STARLIGHT_SLOW = 0x0F, /* "Digital times" */
|
||||
REDRAGON_K556_MODE_VISOR = 0x10, /* "Both ways" */
|
||||
REDRAGON_K556_MODE_RAINBOW_WAVE_CIRCLE = 0x12, /* "Fast and the Furious" */
|
||||
REDRAGON_K556_MODE_CUSTOM = 0x14, /* "Coastal" */
|
||||
REDRAGON_K556_PARAMETER_MODE = 0x00, /* Mode parameter */
|
||||
REDRAGON_K556_PARAMETER_BRIGHTNESS = 0x01, /* Brightness parameter */
|
||||
REDRAGON_K556_PARAMETER_SPEED = 0x02, /* Speed parameter */
|
||||
REDRAGON_K556_PARAMETER_DIRECTION = 0x03, /* Direction parameter */
|
||||
REDRAGON_K556_PARAMETER_RANDOM_COLOR_FLAG = 0x04, /* Random color parameter */
|
||||
REDRAGON_K556_PARAMETER_MODE_COLOR = 0x05, /* Mode color (RGB) */
|
||||
REDRAGON_K556_PARAMETER_POLLING_RATE = 0x0F, /* Polling rate */
|
||||
REDRAGON_K556_PARAMETER_SURMOUNT_MODE_COLOR = 0x11, /* Surmount mode color */
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
REDRAGON_K556_MODE_COLOR_WAVE_SHORT = 0x01, /* "Go with the stream" */
|
||||
REDRAGON_K556_MODE_COLOR_WAVE_LONG = 0x02, /* "Clouds fly" */
|
||||
REDRAGON_K556_MODE_COLOR_WHEEL = 0x03, /* "Winding paths" */
|
||||
REDRAGON_K556_MODE_SPECTRUM_CYCLE = 0x04, /* "The trial of light" */
|
||||
REDRAGON_K556_MODE_BREATHING = 0x05, /* "Breathing" */
|
||||
REDRAGON_K556_MODE_STATIC = 0x06, /* "Normally on" */
|
||||
REDRAGON_K556_MODE_REACTIVE = 0x07, /* "Pass without trace" */
|
||||
REDRAGON_K556_MODE_REACTIVE_RIPPLE = 0x08, /* "Ripple graff" */
|
||||
REDRAGON_K556_MODE_REACTIVE_LINE = 0x09, /* "Fast run without trace" */
|
||||
REDRAGON_K556_MODE_STARLIGHT_FAST = 0x0A, /* "Swift action" */
|
||||
REDRAGON_K556_MODE_BLOOMING = 0x0B, /* "Flowers blooming" */
|
||||
REDRAGON_K556_MODE_RAINBOW_WAVE_VERTICAL = 0x0C, /* "Snow winter jasmine" */
|
||||
REDRAGON_K556_MODE_HURRICANE = 0x0D, /* "Hurricane" */
|
||||
REDRAGON_K556_MODE_ACCUMULATE = 0x0E, /* "Accumulate" */
|
||||
REDRAGON_K556_MODE_STARLIGHT_SLOW = 0x0F, /* "Digital times" */
|
||||
REDRAGON_K556_MODE_VISOR = 0x10, /* "Both ways" */
|
||||
REDRAGON_K556_MODE_SURMOUNT = 0x11, /* "Surmount" */
|
||||
REDRAGON_K556_MODE_RAINBOW_WAVE_CIRCLE = 0x12, /* "Fast and the Furious" */
|
||||
REDRAGON_K556_MODE_CUSTOM = 0x14, /* "Coastal" */
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
REDRAGON_K556_BRIGHTNESS_LOWEST = 0x00, /* Lowest brightness (off) */
|
||||
REDRAGON_K556_BRIGHTNESS_HIGHEST = 0x05, /* Highest brightness */
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
REDRAGON_K556_SPEED_SLOWEST = 0x05, /* Slowest speed setting */
|
||||
REDRAGON_K556_SPEED_NORMAL = 0x03, /* Normal speed setting */
|
||||
REDRAGON_K556_SPEED_FASTEST = 0x00, /* Fastest speed setting */
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
REDRAGON_K556_SURMOUNT_MODE_COLOR_RED = 0x01, /* Red surmount color */
|
||||
REDRAGON_K556_SURMOUNT_MODE_COLOR_YELLOW = 0x02, /* Yellow surmount color */
|
||||
REDRAGON_K556_SURMOUNT_MODE_COLOR_GREEN = 0x03, /* Green surmount color */
|
||||
REDRAGON_K556_SURMOUNT_MODE_COLOR_BLUE = 0x04, /* Blue surmount color */
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
REDRAGON_K556_POLLING_RATE_125HZ = 0x00, /* 125Hz polling rate */
|
||||
REDRAGON_K556_POLLING_RATE_250HZ = 0x01, /* 250Hz polling rate */
|
||||
REDRAGON_K556_POLLING_RATE_500HZ = 0x02, /* 500Hz polling rate */
|
||||
REDRAGON_K556_POLLING_RATE_1000HZ = 0x03, /* 1000Hz polling rate */
|
||||
};
|
||||
|
||||
class RedragonK556Controller
|
||||
@@ -58,6 +108,18 @@ public:
|
||||
unsigned char mode
|
||||
);
|
||||
|
||||
void SendKeyboardModeEx
|
||||
(
|
||||
unsigned char mode,
|
||||
unsigned char brightness,
|
||||
unsigned char speed,
|
||||
unsigned char direction,
|
||||
unsigned char random_flag,
|
||||
unsigned char red,
|
||||
unsigned char green,
|
||||
unsigned char blue
|
||||
);
|
||||
|
||||
void SendKeyboardData
|
||||
(
|
||||
unsigned char * data,
|
||||
@@ -74,4 +136,11 @@ private:
|
||||
(
|
||||
char usb_buf[64]
|
||||
);
|
||||
|
||||
void SendKeyboardParameter
|
||||
(
|
||||
unsigned char parameter,
|
||||
unsigned char parameter_size,
|
||||
unsigned char* parameter_data
|
||||
);
|
||||
};
|
||||
|
||||
@@ -27,7 +27,10 @@ RGBController_RedragonK556::RGBController_RedragonK556(RedragonK556Controller* r
|
||||
mode ColorWave;
|
||||
ColorWave.name = "Color Wave";
|
||||
ColorWave.value = REDRAGON_K556_MODE_COLOR_WAVE_LONG;
|
||||
ColorWave.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
ColorWave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
ColorWave.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
ColorWave.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
ColorWave.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
ColorWave.colors_min = 1;
|
||||
ColorWave.colors_max = 1;
|
||||
ColorWave.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
@@ -37,7 +40,10 @@ RGBController_RedragonK556::RGBController_RedragonK556(RedragonK556Controller* r
|
||||
mode ColorWheel;
|
||||
ColorWheel.name = "Color Wheel";
|
||||
ColorWheel.value = REDRAGON_K556_MODE_COLOR_WHEEL;
|
||||
ColorWheel.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
ColorWheel.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
ColorWheel.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
ColorWheel.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
ColorWheel.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
ColorWheel.colors_min = 1;
|
||||
ColorWheel.colors_max = 1;
|
||||
ColorWheel.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
@@ -47,14 +53,20 @@ RGBController_RedragonK556::RGBController_RedragonK556(RedragonK556Controller* r
|
||||
mode SpectrumCycle;
|
||||
SpectrumCycle.name = "Spectrum Cycle";
|
||||
SpectrumCycle.value = REDRAGON_K556_MODE_SPECTRUM_CYCLE;
|
||||
SpectrumCycle.flags = 0;
|
||||
SpectrumCycle.flags = MODE_FLAG_HAS_SPEED;
|
||||
SpectrumCycle.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
SpectrumCycle.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
SpectrumCycle.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
SpectrumCycle.color_mode = MODE_COLORS_NONE;
|
||||
modes.push_back(SpectrumCycle);
|
||||
|
||||
mode Breathing;
|
||||
Breathing.name = "Breathing";
|
||||
Breathing.value = REDRAGON_K556_MODE_BREATHING;
|
||||
Breathing.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
|
||||
Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
Breathing.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
Breathing.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
Breathing.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
Breathing.colors_min = 1;
|
||||
Breathing.colors_max = 1;
|
||||
Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
@@ -62,9 +74,12 @@ RGBController_RedragonK556::RGBController_RedragonK556(RedragonK556Controller* r
|
||||
modes.push_back(Breathing);
|
||||
|
||||
mode Hurricane;
|
||||
Hurricane.name = "Hurricane";
|
||||
Hurricane.value = REDRAGON_K556_MODE_HURRICANE;
|
||||
Hurricane.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
|
||||
Hurricane.name = "Hurricane";
|
||||
Hurricane.value = REDRAGON_K556_MODE_HURRICANE;
|
||||
Hurricane.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
Hurricane.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
Hurricane.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
Hurricane.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
Hurricane.colors_min = 1;
|
||||
Hurricane.colors_max = 1;
|
||||
Hurricane.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
@@ -74,7 +89,10 @@ RGBController_RedragonK556::RGBController_RedragonK556(RedragonK556Controller* r
|
||||
mode Accumulate;
|
||||
Accumulate.name = "Accumulate";
|
||||
Accumulate.value = REDRAGON_K556_MODE_ACCUMULATE;
|
||||
Accumulate.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
|
||||
Accumulate.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
Accumulate.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
Accumulate.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
Accumulate.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
Accumulate.colors_min = 1;
|
||||
Accumulate.colors_max = 1;
|
||||
Accumulate.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
@@ -84,7 +102,10 @@ RGBController_RedragonK556::RGBController_RedragonK556(RedragonK556Controller* r
|
||||
mode Starlight;
|
||||
Starlight.name = "Starlight";
|
||||
Starlight.value = REDRAGON_K556_MODE_STARLIGHT_FAST;
|
||||
Starlight.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
|
||||
Starlight.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
Starlight.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
Starlight.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
Starlight.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
Starlight.colors_min = 1;
|
||||
Starlight.colors_max = 1;
|
||||
Starlight.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
@@ -94,7 +115,10 @@ RGBController_RedragonK556::RGBController_RedragonK556(RedragonK556Controller* r
|
||||
mode Visor;
|
||||
Visor.name = "Visor";
|
||||
Visor.value = REDRAGON_K556_MODE_VISOR;
|
||||
Visor.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
|
||||
Visor.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
Visor.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
Visor.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
Visor.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
Visor.colors_min = 1;
|
||||
Visor.colors_max = 1;
|
||||
Visor.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
@@ -112,23 +136,29 @@ RGBController_RedragonK556::RGBController_RedragonK556(RedragonK556Controller* r
|
||||
modes.push_back(Static);
|
||||
|
||||
mode RainbowCircle;
|
||||
RainbowCircle.name = "Rainbow Circle";
|
||||
RainbowCircle.value = REDRAGON_K556_MODE_RAINBOW_WAVE_CIRCLE;
|
||||
RainbowCircle.flags = 0;
|
||||
RainbowCircle.name = "Rainbow Circle";
|
||||
RainbowCircle.value = REDRAGON_K556_MODE_RAINBOW_WAVE_CIRCLE;
|
||||
RainbowCircle.flags = 0;
|
||||
RainbowCircle.color_mode = MODE_COLORS_NONE;
|
||||
modes.push_back(RainbowCircle);
|
||||
|
||||
mode Blooming;
|
||||
Blooming.name = "Blooming";
|
||||
Blooming.value = REDRAGON_K556_MODE_BLOOMING;
|
||||
Blooming.flags = 0;
|
||||
Blooming.flags = MODE_FLAG_HAS_SPEED;
|
||||
Blooming.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
Blooming.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
Blooming.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
Blooming.color_mode = MODE_COLORS_NONE;
|
||||
modes.push_back(Blooming);
|
||||
|
||||
mode Reactive;
|
||||
Reactive.name = "Reactive";
|
||||
Reactive.value = REDRAGON_K556_MODE_REACTIVE;
|
||||
Reactive.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
|
||||
Reactive.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
Reactive.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
Reactive.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
Reactive.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
Reactive.colors_min = 1;
|
||||
Reactive.colors_max = 1;
|
||||
Reactive.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
@@ -138,7 +168,10 @@ RGBController_RedragonK556::RGBController_RedragonK556(RedragonK556Controller* r
|
||||
mode ReactiveRipple;
|
||||
ReactiveRipple.name = "Reactive Ripple";
|
||||
ReactiveRipple.value = REDRAGON_K556_MODE_REACTIVE_RIPPLE;
|
||||
ReactiveRipple.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
|
||||
ReactiveRipple.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
ReactiveRipple.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
ReactiveRipple.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
ReactiveRipple.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
ReactiveRipple.colors_min = 1;
|
||||
ReactiveRipple.colors_max = 1;
|
||||
ReactiveRipple.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
@@ -148,7 +181,10 @@ RGBController_RedragonK556::RGBController_RedragonK556(RedragonK556Controller* r
|
||||
mode ReactiveLine;
|
||||
ReactiveLine.name = "Reactive Line";
|
||||
ReactiveLine.value = REDRAGON_K556_MODE_REACTIVE_LINE;
|
||||
ReactiveLine.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
|
||||
ReactiveLine.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
|
||||
ReactiveLine.speed_min = REDRAGON_K556_SPEED_SLOWEST;
|
||||
ReactiveLine.speed_max = REDRAGON_K556_SPEED_FASTEST;
|
||||
ReactiveLine.speed = REDRAGON_K556_SPEED_NORMAL;
|
||||
ReactiveLine.colors_min = 1;
|
||||
ReactiveLine.colors_max = 1;
|
||||
ReactiveLine.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
@@ -225,5 +261,27 @@ void RGBController_RedragonK556::SetCustomMode()
|
||||
|
||||
void RGBController_RedragonK556::UpdateMode()
|
||||
{
|
||||
redragon->SendKeyboardMode(modes[active_mode].value);
|
||||
unsigned char red = 0x00;
|
||||
unsigned char grn = 0x00;
|
||||
unsigned char blu = 0x00;
|
||||
unsigned char random = (modes[active_mode].color_mode == MODE_COLORS_RANDOM);
|
||||
|
||||
if(modes[active_mode].colors.size() > 0)
|
||||
{
|
||||
red = RGBGetRValue(modes[active_mode].colors[0]);
|
||||
grn = RGBGetGValue(modes[active_mode].colors[0]);
|
||||
blu = RGBGetBValue(modes[active_mode].colors[0]);
|
||||
}
|
||||
|
||||
redragon->SendKeyboardModeEx
|
||||
(
|
||||
modes[active_mode].value,
|
||||
REDRAGON_K556_BRIGHTNESS_HIGHEST,
|
||||
modes[active_mode].speed,
|
||||
0,
|
||||
random,
|
||||
red,
|
||||
grn,
|
||||
blu
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user