@@ -32,86 +32,148 @@ RGBController_AuraMousemat::RGBController_AuraMousemat(AuraMousematController* c
3232 serial = controller->GetSerialString ();
3333
3434 mode Direct;
35- Direct.name = " Direct" ;
36- Direct.value = AURA_MOUSEMAT_MODE_DIRECT;
37- Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
38- Direct.color_mode = MODE_COLORS_PER_LED;
35+ Direct.name = " Direct" ;
36+ Direct.value = AURA_MOUSEMAT_MODE_DIRECT;
37+ Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
38+ Direct.color_mode = MODE_COLORS_PER_LED;
3939 modes.push_back (Direct);
4040
4141 mode Static;
42- Static.name = " Static" ;
43- Static.value = AURA_MOUSEMAT_MODE_STATIC;
44- Static.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
45- Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
46- Static.speed_min = AURA_MOUSEMAT_SPEED_MIN;
47- Static.speed_max = AURA_MOUSEMAT_SPEED_MAX;
48- Static.speed = AURA_MOUSEMAT_SPEED_DEFAULT;
49- Static.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
50- Static.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
51- Static.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
52- Static.colors_min = 1 ;
53- Static.colors_max = 1 ;
42+ Static.name = " Static" ;
43+ Static.value = AURA_MOUSEMAT_MODE_STATIC;
44+ Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
45+ Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
46+ Static.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
47+ Static.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
48+ Static.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
49+ Static.colors_min = 1 ;
50+ Static.colors_max = 1 ;
5451 Static.colors .resize (1 );
5552 modes.push_back (Static);
5653
5754 mode Breathing;
58- Breathing.name = " Breathing" ;
59- Breathing.value = AURA_MOUSEMAT_MODE_BREATHING;
60- Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
61- Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC;
62- Breathing.speed_min = AURA_MOUSEMAT_SPEED_MIN;
63- Breathing.speed_max = AURA_MOUSEMAT_SPEED_MAX;
64- Breathing.speed = AURA_MOUSEMAT_SPEED_DEFAULT ;
65- Breathing.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
66- Breathing.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
67- Breathing.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
68- Breathing.colors_min = 1 ;
69- Breathing.colors_max = 1 ;
55+ Breathing.name = " Breathing" ;
56+ Breathing.value = AURA_MOUSEMAT_MODE_BREATHING;
57+ Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
58+ Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC | MODE_COLORS_RANDOM ;
59+ Breathing.speed_min = AURA_MOUSEMAT_SPEED_MIN;
60+ Breathing.speed_max = AURA_MOUSEMAT_SPEED_MAX;
61+ Breathing.speed = AURA_MOUSEMAT_SPEED_DEFAULT_BREATHING ;
62+ Breathing.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
63+ Breathing.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
64+ Breathing.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
65+ Breathing.colors_min = 1 ;
66+ Breathing.colors_max = 2 ;
7067 Breathing.colors .resize (1 );
7168 modes.push_back (Breathing);
7269
7370 mode ColorCycle;
74- ColorCycle.name = " Color Cycle" ;
75- ColorCycle.value = AURA_MOUSEMAT_MODE_COLOR_CYCLE;
76- ColorCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
77- ColorCycle.color_mode = MODE_COLORS_NONE;
78- ColorCycle.speed_min = AURA_MOUSEMAT_SPEED_MIN;
79- ColorCycle.speed_max = AURA_MOUSEMAT_SPEED_MAX;
80- ColorCycle.speed = AURA_MOUSEMAT_SPEED_DEFAULT ;
81- ColorCycle.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
82- ColorCycle.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
83- ColorCycle.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
71+ ColorCycle.name = " Color Cycle" ;
72+ ColorCycle.value = AURA_MOUSEMAT_MODE_COLOR_CYCLE;
73+ ColorCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
74+ ColorCycle.color_mode = MODE_COLORS_NONE;
75+ ColorCycle.speed_min = AURA_MOUSEMAT_SPEED_MIN;
76+ ColorCycle.speed_max = AURA_MOUSEMAT_SPEED_MAX;
77+ ColorCycle.speed = AURA_MOUSEMAT_SPEED_DEFAULT_COLOR_CYCLE ;
78+ ColorCycle.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
79+ ColorCycle.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
80+ ColorCycle.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
8481 modes.push_back (ColorCycle);
8582
83+ mode Wave;
84+ Wave.name = " Wave" ;
85+ Wave.value = AURA_MOUSEMAT_MODE_WAVE;
86+ Wave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_MANUAL_SAVE;
87+ Wave.color_mode = MODE_COLORS_MODE_SPECIFIC;
88+ Wave.speed_min = AURA_MOUSEMAT_SPEED_MIN;
89+ Wave.speed_max = AURA_MOUSEMAT_SPEED_MAX;
90+ Wave.speed = AURA_MOUSEMAT_SPEED_DEFAULT_WAVE;
91+ Wave.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
92+ Wave.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
93+ Wave.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
94+ Wave.direction = MODE_DIRECTION_LEFT;
95+ Wave.colors_min = 7 ;
96+ Wave.colors_max = 7 ;
97+ Wave.colors .resize (7 );
98+ modes.push_back (Wave);
99+
100+ mode WavePlane;
101+ WavePlane.name = " Wave Plane" ;
102+ WavePlane.value = AURA_MOUSEMAT_MODE_WAVE_PLANE;
103+ WavePlane.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_DIRECTION_UD | MODE_FLAG_MANUAL_SAVE;
104+ WavePlane.color_mode = MODE_COLORS_NONE;
105+ WavePlane.speed_min = AURA_MOUSEMAT_SPEED_MIN;
106+ WavePlane.speed_max = AURA_MOUSEMAT_SPEED_MAX;
107+ WavePlane.speed = AURA_MOUSEMAT_SPEED_DEFAULT_WAVE_PLANE;
108+ WavePlane.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
109+ WavePlane.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
110+ WavePlane.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
111+ WavePlane.direction = MODE_DIRECTION_LEFT;
112+ modes.push_back (WavePlane);
113+
86114 mode Comet;
87- Comet.name = " Comet" ;
88- Comet.value = AURA_MOUSEMAT_MODE_COMET;
89- Comet.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
90- Comet.color_mode = MODE_COLORS_MODE_SPECIFIC;
91- Comet.speed_min = AURA_MOUSEMAT_SPEED_MIN;
92- Comet.speed_max = AURA_MOUSEMAT_SPEED_MAX;
93- Comet.speed = AURA_MOUSEMAT_SPEED_DEFAULT;
94- Comet.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
95- Comet.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
96- Comet.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
97- Comet.colors_min = 1 ;
98- Comet.colors_max = 1 ;
115+ Comet.name = " Comet" ;
116+ Comet.value = AURA_MOUSEMAT_MODE_COMET;
117+ Comet.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_DIRECTION_HV | MODE_FLAG_MANUAL_SAVE;
118+ Comet.color_mode = MODE_COLORS_MODE_SPECIFIC;
119+ Comet.speed_min = AURA_MOUSEMAT_SPEED_MIN;
120+ Comet.speed_max = AURA_MOUSEMAT_SPEED_MAX;
121+ Comet.speed = AURA_MOUSEMAT_SPEED_DEFAULT_COMET;
122+ Comet.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
123+ Comet.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
124+ Comet.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
125+ Comet.direction = MODE_DIRECTION_LEFT;
126+ Comet.colors_min = 1 ;
127+ Comet.colors_max = 1 ;
99128 Comet.colors .resize (1 );
100129 modes.push_back (Comet);
101130
102131 mode GlowingYoyo;
103- GlowingYoyo.name = " Glowing Yoyo" ;
104- GlowingYoyo.value = AURA_MOUSEMAT_MODE_GLOWING_YOYO;
105- GlowingYoyo.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
106- GlowingYoyo.color_mode = MODE_COLORS_NONE;
107- GlowingYoyo.speed_min = AURA_MOUSEMAT_SPEED_MIN;
108- GlowingYoyo.speed_max = AURA_MOUSEMAT_SPEED_MAX;
109- GlowingYoyo.speed = AURA_MOUSEMAT_SPEED_DEFAULT;
110- GlowingYoyo.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
111- GlowingYoyo.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
112- GlowingYoyo.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
132+ GlowingYoyo.name = " Glowing Yoyo" ;
133+ GlowingYoyo.value = AURA_MOUSEMAT_MODE_GLOWING_YOYO;
134+ GlowingYoyo.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_MANUAL_SAVE;
135+ GlowingYoyo.color_mode = MODE_COLORS_NONE;
136+ GlowingYoyo.speed_min = AURA_MOUSEMAT_SPEED_MIN;
137+ GlowingYoyo.speed_max = AURA_MOUSEMAT_SPEED_MAX;
138+ GlowingYoyo.speed = AURA_MOUSEMAT_SPEED_DEFAULT_GLOWING_YOYO;
139+ GlowingYoyo.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
140+ GlowingYoyo.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
141+ GlowingYoyo.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
142+ GlowingYoyo.direction = MODE_DIRECTION_LEFT;
113143 modes.push_back (GlowingYoyo);
114144
145+ mode Cross;
146+ Cross.name = " Cross" ;
147+ Cross.value = AURA_MOUSEMAT_MODE_CROSS;
148+ Cross.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
149+ Cross.color_mode = MODE_COLORS_MODE_SPECIFIC;
150+ Cross.speed_min = AURA_MOUSEMAT_SPEED_MIN;
151+ Cross.speed_max = AURA_MOUSEMAT_SPEED_MAX;
152+ Cross.speed = AURA_MOUSEMAT_SPEED_DEFAULT_CROSS;
153+ Cross.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
154+ Cross.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
155+ Cross.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
156+ Cross.colors_min = 2 ;
157+ Cross.colors_max = 2 ;
158+ Cross.colors .resize (2 );
159+ modes.push_back (Cross);
160+
161+ mode StarryNight;
162+ StarryNight.name = " Starry Night" ;
163+ StarryNight.value = AURA_MOUSEMAT_MODE_STARRY_NIGHT;
164+ StarryNight.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
165+ StarryNight.color_mode = MODE_COLORS_MODE_SPECIFIC | MODE_COLORS_RANDOM;
166+ StarryNight.speed_min = AURA_MOUSEMAT_SPEED_MIN;
167+ StarryNight.speed_max = AURA_MOUSEMAT_SPEED_MAX;
168+ StarryNight.speed = AURA_MOUSEMAT_SPEED_DEFAULT_STARRY_NIGHT;
169+ StarryNight.brightness_min = AURA_MOUSEMAT_BRIGHTNESS_MIN;
170+ StarryNight.brightness_max = AURA_MOUSEMAT_BRIGHTNESS_MAX;
171+ StarryNight.brightness = AURA_MOUSEMAT_BRIGHTNESS_DEFAULT;
172+ StarryNight.colors_min = 2 ;
173+ StarryNight.colors_max = 2 ;
174+ StarryNight.colors .resize (2 );
175+ modes.push_back (StarryNight);
176+
115177 SetupZones ();
116178}
117179
@@ -174,26 +236,62 @@ void RGBController_AuraMousemat::SetCustomMode()
174236
175237void RGBController_AuraMousemat::DeviceUpdateMode ()
176238{
177- unsigned char red = 0 ;
178- unsigned char grn = 0 ;
179- unsigned char blu = 0 ;
180-
181- switch (modes[active_mode].value )
239+ if (modes[active_mode].value == AURA_MOUSEMAT_MODE_DIRECT)
182240 {
183- case AURA_MOUSEMAT_MODE_DIRECT:
184- controller->UpdateLeds (std::vector<RGBColor>(colors));
185- break ;
186- case AURA_MOUSEMAT_MODE_STATIC:
187- case AURA_MOUSEMAT_MODE_BREATHING:
188- case AURA_MOUSEMAT_MODE_COLOR_CYCLE:
189- case AURA_MOUSEMAT_MODE_CHASING:
190- case AURA_MOUSEMAT_MODE_COMET:
191- case AURA_MOUSEMAT_MODE_GLOWING_YOYO:
192- red = RGBGetRValue (modes[active_mode].colors [0 ]);
193- grn = RGBGetGValue (modes[active_mode].colors [0 ]);
194- blu = RGBGetBValue (modes[active_mode].colors [0 ]);
195- controller->UpdateDevice (modes[active_mode].value , red, grn, blu, modes[active_mode].speed , modes[active_mode].brightness );
196- break ;
241+ DeviceUpdateLEDs ();
242+ }
243+ else
244+ {
245+ int pattern = 0 ;
246+
247+ switch (modes[active_mode].value )
248+ {
249+ case AURA_MOUSEMAT_MODE_BREATHING:
250+ if (modes[active_mode].color_mode == MODE_COLORS_RANDOM)
251+ {
252+ pattern = 2 ;
253+ }
254+ else
255+ {
256+ pattern = modes[active_mode].colors .size () - 1 ;
257+ }
258+ break ;
259+ case AURA_MOUSEMAT_MODE_WAVE:
260+ pattern = modes[active_mode].colors .size () * 16 + modes[active_mode].direction ;
261+ break ;
262+ case AURA_MOUSEMAT_MODE_WAVE_PLANE:
263+ switch (modes[active_mode].direction )
264+ {
265+ case MODE_DIRECTION_LEFT:
266+ pattern = 2 ;
267+ break ;
268+ case MODE_DIRECTION_RIGHT:
269+ pattern = 3 ;
270+ break ;
271+ case MODE_DIRECTION_UP:
272+ pattern = 0 ;
273+ break ;
274+ case MODE_DIRECTION_DOWN:
275+ pattern = 1 ;
276+ break ;
277+ }
278+ break ;
279+ case AURA_MOUSEMAT_MODE_COMET:
280+ pattern = modes[active_mode].direction ;
281+ if (pattern == MODE_DIRECTION_HORIZONTAL || pattern == MODE_DIRECTION_VERTICAL) pattern = 2 ;
282+ break ;
283+ case AURA_MOUSEMAT_MODE_GLOWING_YOYO:
284+ pattern = modes[active_mode].direction ;
285+ break ;
286+ case AURA_MOUSEMAT_MODE_STARRY_NIGHT:
287+ pattern = 16 + (modes[active_mode].color_mode == MODE_COLORS_RANDOM);
288+ break ;
289+ default :
290+ pattern = 255 ;
291+ break ;
292+ }
293+
294+ controller->UpdateDevice (modes[active_mode].value , std::vector<RGBColor>(modes[active_mode].colors ), modes[active_mode].speed , modes[active_mode].brightness , pattern);
197295 }
198296}
199297
0 commit comments