@@ -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
85211void RGBController_RedragonK556::UpdateZoneLEDs (int /* zone*/ )
@@ -99,5 +225,5 @@ void RGBController_RedragonK556::SetCustomMode()
99225
100226void RGBController_RedragonK556::UpdateMode ()
101227{
102- UpdateLEDs ( );
228+ redragon-> SendKeyboardMode (modes[active_mode]. value );
103229}
0 commit comments