Skip to content

Commit 2a43cef

Browse files
Add Redragon K556 modes, though grouped modes and colors aren't implemented yet
1 parent 68960b7 commit 2a43cef

File tree

2 files changed

+134
-8
lines changed

2 files changed

+134
-8
lines changed

Controllers/RedragonController/RedragonK556Controller.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
enum
2121
{
22-
REDRAGON_K556_MODE_RAINBOW_WAVE_SHORT = 0x01, /* "Go with the stream" */
23-
REDRAGON_K556_MODE_RAINBOW_WAVE_LONG = 0x02, /* "Clouds fly" */
22+
REDRAGON_K556_MODE_COLOR_WAVE_SHORT = 0x01, /* "Go with the stream" */
23+
REDRAGON_K556_MODE_COLOR_WAVE_LONG = 0x02, /* "Clouds fly" */
2424
REDRAGON_K556_MODE_COLOR_WHEEL = 0x03, /* "Winding paths" */
2525
REDRAGON_K556_MODE_SPECTRUM_CYCLE = 0x04, /* "The trial of light" */
2626
REDRAGON_K556_MODE_BREATHING = 0x05, /* "Breathing" */

RGBController/RGBController_RedragonK556.cpp

Lines changed: 132 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,137 @@ RGBController_RedragonK556::RGBController_RedragonK556(RedragonK556Controller* r
2424
Custom.color_mode = MODE_COLORS_PER_LED;
2525
modes.push_back(Custom);
2626

27+
mode ColorWave;
28+
ColorWave.name = "Color Wave";
29+
ColorWave.value = REDRAGON_K556_MODE_COLOR_WAVE_LONG;
30+
ColorWave.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
31+
ColorWave.colors_min = 1;
32+
ColorWave.colors_max = 1;
33+
ColorWave.color_mode = MODE_COLORS_MODE_SPECIFIC;
34+
ColorWave.colors.resize(1);
35+
modes.push_back(ColorWave);
36+
37+
mode ColorWheel;
38+
ColorWheel.name = "Color Wheel";
39+
ColorWheel.value = REDRAGON_K556_MODE_COLOR_WHEEL;
40+
ColorWheel.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR;
41+
ColorWheel.colors_min = 1;
42+
ColorWheel.colors_max = 1;
43+
ColorWheel.color_mode = MODE_COLORS_MODE_SPECIFIC;
44+
ColorWheel.colors.resize(1);
45+
modes.push_back(ColorWheel);
46+
47+
mode SpectrumCycle;
48+
SpectrumCycle.name = "Spectrum Cycle";
49+
SpectrumCycle.value = REDRAGON_K556_MODE_SPECTRUM_CYCLE;
50+
SpectrumCycle.flags = 0;
51+
SpectrumCycle.color_mode = MODE_COLORS_NONE;
52+
modes.push_back(SpectrumCycle);
53+
54+
mode Breathing;
55+
Breathing.name = "Breathing";
56+
Breathing.value = REDRAGON_K556_MODE_BREATHING;
57+
Breathing.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
58+
Breathing.colors_min = 1;
59+
Breathing.colors_max = 1;
60+
Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC;
61+
Breathing.colors.resize(1);
62+
modes.push_back(Breathing);
63+
64+
mode Hurricane;
65+
Hurricane.name = "Hurricane";
66+
Hurricane.value = REDRAGON_K556_MODE_HURRICANE;
67+
Hurricane.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
68+
Hurricane.colors_min = 1;
69+
Hurricane.colors_max = 1;
70+
Hurricane.color_mode = MODE_COLORS_MODE_SPECIFIC;
71+
Hurricane.colors.resize(1);
72+
modes.push_back(Hurricane);
73+
74+
mode Accumulate;
75+
Accumulate.name = "Accumulate";
76+
Accumulate.value = REDRAGON_K556_MODE_ACCUMULATE;
77+
Accumulate.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
78+
Accumulate.colors_min = 1;
79+
Accumulate.colors_max = 1;
80+
Accumulate.color_mode = MODE_COLORS_MODE_SPECIFIC;
81+
Accumulate.colors.resize(1);
82+
modes.push_back(Accumulate);
83+
84+
mode Starlight;
85+
Starlight.name = "Starlight";
86+
Starlight.value = REDRAGON_K556_MODE_STARLIGHT_FAST;
87+
Starlight.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
88+
Starlight.colors_min = 1;
89+
Starlight.colors_max = 1;
90+
Starlight.color_mode = MODE_COLORS_MODE_SPECIFIC;
91+
Starlight.colors.resize(1);
92+
modes.push_back(Starlight);
93+
94+
mode Visor;
95+
Visor.name = "Visor";
96+
Visor.value = REDRAGON_K556_MODE_VISOR;
97+
Visor.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
98+
Visor.colors_min = 1;
99+
Visor.colors_max = 1;
100+
Visor.color_mode = MODE_COLORS_MODE_SPECIFIC;
101+
Visor.colors.resize(1);
102+
modes.push_back(Visor);
103+
104+
mode Static;
105+
Static.name = "Static";
106+
Static.value = REDRAGON_K556_MODE_STATIC;
107+
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
108+
Static.colors_min = 1;
109+
Static.colors_max = 1;
110+
Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
111+
Static.colors.resize(1);
112+
modes.push_back(Static);
113+
114+
mode RainbowCircle;
115+
RainbowCircle.name = "Rainbow Circle";
116+
RainbowCircle.value = REDRAGON_K556_MODE_RAINBOW_WAVE_CIRCLE;
117+
RainbowCircle.flags = 0;
118+
RainbowCircle.color_mode = MODE_COLORS_NONE;
119+
modes.push_back(RainbowCircle);
120+
121+
mode Blooming;
122+
Blooming.name = "Blooming";
123+
Blooming.value = REDRAGON_K556_MODE_BLOOMING;
124+
Blooming.flags = 0;
125+
Blooming.color_mode = MODE_COLORS_NONE;
126+
modes.push_back(Blooming);
127+
128+
mode Reactive;
129+
Reactive.name = "Reactive";
130+
Reactive.value = REDRAGON_K556_MODE_REACTIVE;
131+
Reactive.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
132+
Reactive.colors_min = 1;
133+
Reactive.colors_max = 1;
134+
Reactive.color_mode = MODE_COLORS_MODE_SPECIFIC;
135+
Reactive.colors.resize(1);
136+
modes.push_back(Reactive);
137+
138+
mode ReactiveRipple;
139+
ReactiveRipple.name = "Reactive Ripple";
140+
ReactiveRipple.value = REDRAGON_K556_MODE_REACTIVE_RIPPLE;
141+
ReactiveRipple.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
142+
ReactiveRipple.colors_min = 1;
143+
ReactiveRipple.colors_max = 1;
144+
ReactiveRipple.color_mode = MODE_COLORS_MODE_SPECIFIC;
145+
ReactiveRipple.colors.resize(1);
146+
modes.push_back(ReactiveRipple);
147+
148+
mode ReactiveLine;
149+
ReactiveLine.name = "Reactive Line";
150+
ReactiveLine.value = REDRAGON_K556_MODE_REACTIVE_LINE;
151+
ReactiveLine.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
152+
ReactiveLine.colors_min = 1;
153+
ReactiveLine.colors_max = 1;
154+
ReactiveLine.color_mode = MODE_COLORS_MODE_SPECIFIC;
155+
ReactiveLine.colors.resize(1);
156+
modes.push_back(ReactiveLine);
157+
27158
SetupZones();
28159
}
29160

@@ -69,17 +200,12 @@ void RGBController_RedragonK556::UpdateLEDs()
69200
color_data[(3 * led_idx) + 1] = RGBGetGValue(colors[led_idx]);
70201
color_data[(3 * led_idx) + 2] = RGBGetBValue(colors[led_idx]);
71202
}
72-
73-
redragon->SendKeyboardBegin();
74-
redragon->SendKeyboardMode(20);
75203

76204
redragon->SetKeyboardColors
77205
(
78206
color_data,
79207
0x36 * 7
80208
);
81-
82-
redragon->SendKeyboardEnd();
83209
}
84210

85211
void RGBController_RedragonK556::UpdateZoneLEDs(int /*zone*/)
@@ -99,5 +225,5 @@ void RGBController_RedragonK556::SetCustomMode()
99225

100226
void RGBController_RedragonK556::UpdateMode()
101227
{
102-
UpdateLEDs();
228+
redragon->SendKeyboardMode(modes[active_mode].value);
103229
}

0 commit comments

Comments
 (0)