Updated rgb_led struct field modifier to flags (#5619)
[jackhill/qmk/firmware.git] / keyboards / dztech / dz60rgb / dz60rgb.c
1 #include "dz60rgb.h"
2 #include "config.h"
3 #if defined (dzrgb60_iso)
4 const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
5 {0, K_14, J_14, L_14},
6 {0, K_13, J_13, L_13},
7 {0, K_12, J_12, L_12},
8 {0, K_11, J_11, L_11},
9 {0, K_10, J_10, L_10},
10 {0, K_9, J_9, L_9},
11 {0, K_8, J_8, L_8},
12 {0, K_7, J_7, L_7},
13 {0, K_6, J_6, L_6},
14 {0, K_5, J_5, L_5},
15 {0, K_4, J_4, L_4},
16 {0, K_3, J_3, L_3},
17 {0, K_2, J_2, L_2},
18 {0, K_1, J_1, L_1},
19 {0, H_15, G_15, I_15},
20 {0, H_13, G_13, I_13},
21 {0, H_12, G_12, I_12},
22 {0, H_11, G_11, I_11},
23 {0, H_10, G_10, I_10},
24 {0, H_9, G_9, I_9},
25 {0, H_8, G_8, I_8},
26 {0, H_7, G_7, I_7},
27 {0, H_6, G_6, I_6},
28 {0, H_5, G_5, I_5},
29 {0, H_4, G_4, I_4},
30 {0, H_3, G_3, I_3},
31 {0, H_2, G_2, I_2},
32 {0, H_1, G_1, I_1},
33 {0, B_14, A_14, C_14},
34 {0, E_12, D_12, F_12},
35 {0, E_11, D_11, F_11},
36 {0, E_10, D_10, F_10},
37 {0, E_9, D_9, F_9},
38 {0, E_8, D_8, F_8},
39 {0, E_7, D_7, F_7},
40 {0, E_6, D_6, F_6},
41 {0, E_5, D_5, F_5},
42 {0, E_4, D_4, F_4},
43 {0, E_3, D_3, F_3},
44 {0, E_2, D_2, F_2},
45 {0, E_1, D_1, F_1},
46 {0, B_13, A_13, C_13},
47 {0, B_11, A_11, C_11},
48 {0, B_10, A_10, C_10},
49 {0, B_9, A_9, C_9},
50 {0, B_8, A_8, C_8},
51 {0, B_7, A_7, C_7},
52 {0, B_6, A_6, C_6},
53 {0, B_5, A_5, C_5},
54 {0, B_4, A_4, C_4},
55 {0, B_3, A_3, C_3},
56 {0, B_2, A_2, C_2},
57 {0, B_1, A_1, C_1},
58 {0, B_15, A_15, C_15},
59 {0, E_13, D_13, F_13},
60 {0, B_12, A_12, C_12},
61 {0, E_15, D_15, F_15},
62 {0, B_16, A_16, C_16},
63 {0, E_16, D_16, F_16},
64 {0, H_16, G_16, I_16},
65 {0, K_16, J_16, L_16},
66 };
67
68 rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
69 {{0|(13<<4)}, {16*13.5, 0}, 1},
70 {{0|(12<<4)}, {16*12, 0}, 1},
71 {{0|(11<<4)}, {16*11, 0}, 1},
72 {{0|(10<<4)}, {16*10, 0}, 1},
73 {{0|(9<<4)}, {16*9, 0}, 1},
74 {{0|(8<<4)}, {16*8, 0}, 1},
75 {{0|(7<<4)}, {16*7, 0}, 1},
76 {{0|(6<<4)}, {16*6, 0}, 1},
77 {{0|(5<<4)}, {16*5, 0}, 1},
78 {{0|(4<<4)}, {16*4, 0}, 1},
79 {{0|(3<<4)}, {16*3, 0}, 1},
80 {{0|(2<<4)}, {16*2, 0}, 1},
81 {{0|(1<<4)}, {16*1, 0}, 1},
82 {{0|(0<<4)}, {16*0, 0}, 1},
83 {{2|(13<<4)}, {16*13.75, 24}, 1},
84 {{1|(12<<4)}, {16*12.5, 16}, 4},
85 {{1|(11<<4)}, {16*11.5, 16}, 4},
86 {{1|(10<<4)}, {16*10.5, 16}, 4},
87 {{1|(9<<4)}, { 16*9.5, 16}, 4},
88 {{1|(8<<4)}, { 16*8.5, 16}, 4},
89 {{1|(7<<4)}, { 16*7.5, 16}, 4},
90 {{1|(6<<4)}, { 16*6.5, 16}, 4},
91 {{1|(5<<4)}, { 16*5.5, 16}, 4},
92 {{1|(4<<4)}, { 16*4.5, 16}, 4},
93 {{1|(3<<4)}, { 16*3.5, 16}, 4},
94 {{1|(2<<4)}, { 16*2.5, 16}, 4},
95 {{1|(1<<4)}, { 16*1.5, 16}, 4},
96 {{1|(0<<4)}, { 16*0.25, 16}, 1},
97 {{1|(13<<4)}, {16*12.75, 32}, 1},
98 {{2|(11<<4)}, {16*11.75, 32}, 4},
99 {{2|(10<<4)}, {16*10.75, 32}, 4},
100 {{2|(9<<4)}, {16*9.75, 32}, 4},
101 {{2|(8<<4)}, {16*8.75, 32}, 4},
102 {{2|(7<<4)}, {16*7.75, 32}, 4},
103 {{2|(6<<4)}, { 16*6.75, 32}, 4},
104 {{2|(5<<4)}, { 16*5.75, 32}, 4},
105 {{2|(4<<4)}, { 16*4.75, 32}, 4},
106 {{2|(3<<4)}, { 16*3.75, 32}, 4},
107 {{2|(2<<4)}, { 16*2.75, 32}, 4},
108 {{2|(1<<4)}, { 16*1.75, 32}, 4},
109 {{2|(0<<4)}, { 16*0.375, 32}, 1},
110 {{3|(11<<4)}, {16*13.125, 48}, 1},
111 {{3|(10<<4)}, {16*11.25, 48}, 4},
112 {{3|(9<<4)}, {16*10.25, 48}, 4},
113 {{3|(8<<4)}, {16*9.25, 48}, 4},
114 {{3|(7<<4)}, {16*8.25, 48}, 4},
115 {{3|(6<<4)}, {16*7.25, 48}, 4},
116 {{3|(5<<4)}, {16*6.25, 48}, 4},
117 {{3|(4<<4)}, {16*5.25, 48}, 4},
118 {{3|(3<<4)}, {16*4.25, 48}, 4},
119 {{3|(2<<4)}, {16*3.25, 48}, 4},
120 {{3|(1<<4)}, {16*1.25, 48}, 4},
121 {{3|(0<<4)}, {16*0.625, 48}, 1},
122 {{4|(13<<4)}, {16*13.875, 64}, 1},
123 {{4|(11<<4)}, {16*12.625, 64}, 1},
124 {{4|(10<<4)}, {16*11.375, 64}, 1},
125 {{4|(9<<4)}, {16*10.125, 64}, 1},
126 {{4|(5<<4)}, { 16*6.375, 64}, 4},
127 {{4|(2<<4)}, { 16*2.625, 64}, 1},
128 {{4|(1<<4)}, { 16*1.375, 64}, 1},
129 {{4|(0<<4)}, { 16*0.125, 64}, 1},
130 };
131 #elif defined (dzrgb60_hhkb)
132 const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
133 {0, H_15, G_15, I_15},
134 {0, K_14, J_14, L_14},
135 {0, K_13, J_13, L_13},
136 {0, K_12, J_12, L_12},
137 {0, K_11, J_11, L_11},
138 {0, K_10, J_10, L_10},
139 {0, K_9, J_9, L_9},
140 {0, K_8, J_8, L_8},
141 {0, K_7, J_7, L_7},
142 {0, K_6, J_6, L_6},
143 {0, K_5, J_5, L_5},
144 {0, K_4, J_4, L_4},
145 {0, K_3, J_3, L_3},
146 {0, K_2, J_2, L_2},
147 {0, K_1, J_1, L_1},
148 {0, H_14, G_14, I_14},
149 {0, H_13, G_13, I_13},
150 {0, H_12, G_12, I_12},
151 {0, H_11, G_11, I_11},
152 {0, H_10, G_10, I_10},
153 {0, H_9, G_9, I_9},
154 {0, H_8, G_8, I_8},
155 {0, H_7, G_7, I_7},
156 {0, H_6, G_6, I_6},
157 {0, H_5, G_5, I_5},
158 {0, H_4, G_4, I_4},
159 {0, H_3, G_3, I_3},
160 {0, H_2, G_2, I_2},
161 {0, H_1, G_1, I_1},
162 {0, E_14, D_14, F_14},
163 {0, E_12, D_12, F_12},
164 {0, E_11, D_11, F_11},
165 {0, E_10, D_10, F_10},
166 {0, E_9, D_9, F_9},
167 {0, E_8, D_8, F_8},
168 {0, E_7, D_7, F_7},
169 {0, E_6, D_6, F_6},
170 {0, E_5, D_5, F_5},
171 {0, E_4, D_4, F_4},
172 {0, E_3, D_3, F_3},
173 {0, E_2, D_2, F_2},
174 {0, E_1, D_1, F_1},
175 {0, B_14, A_14, C_14},
176 {0, B_13, A_13, C_13},
177 {0, B_11, A_11, C_11},
178 {0, B_10, A_10, C_10},
179 {0, B_9, A_9, C_9},
180 {0, B_8, A_8, C_8},
181 {0, B_7, A_7, C_7},
182 {0, B_6, A_6, C_6},
183 {0, B_5, A_5, C_5},
184 {0, B_4, A_4, C_4},
185 {0, B_3, A_3, C_3},
186 {0, B_2, A_2, C_2},
187 {0, B_1, A_1, C_1},
188 {0, B_15, A_15, C_15},
189 {0, E_13, D_13, F_13},
190 {0, B_12, A_12, C_12},
191 {0, B_16, A_16, C_16},
192 {0, E_16, D_16, F_16},
193 {0, H_16, G_16, I_16},
194 {0, K_16, J_16, L_16},
195 };
196
197 rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
198 {{2|(12<<4)}, {16*14, 0}, 1},
199 {{0|(13<<4)}, {16*13, 0}, 1},
200 {{0|(12<<4)}, {16*12, 0}, 1},
201 {{0|(11<<4)}, {16*11, 0}, 1},
202 {{0|(10<<4)}, {16*10, 0}, 1},
203 {{0|(9<<4)}, {16*9, 0}, 1},
204 {{0|(8<<4)}, {16*8, 0}, 1},
205 {{0|(7<<4)}, {16*7, 0}, 1},
206 {{0|(6<<4)}, {16*6, 0}, 1},
207 {{0|(5<<4)}, {16*5, 0}, 1},
208 {{0|(4<<4)}, {16*4, 0}, 1},
209 {{0|(3<<4)}, {16*3, 0}, 1},
210 {{0|(2<<4)}, {16*2, 0}, 1},
211 {{0|(1<<4)}, {16*1, 0}, 1},
212 {{0|(0<<4)}, {16*0, 0}, 1},
213 {{1|(13<<4)}, {16*13.75, 16}, 1},
214 {{1|(12<<4)}, {16*12.5, 16}, 4},
215 {{1|(11<<4)}, {16*11.5, 16}, 4},
216 {{1|(10<<4)}, {16*10.5, 16}, 4},
217 {{1|(9<<4)}, { 16*9.5, 16}, 4},
218 {{1|(8<<4)}, { 16*8.5, 16}, 4},
219 {{1|(7<<4)}, { 16*7.5, 16}, 4},
220 {{1|(6<<4)}, { 16*6.5, 16}, 4},
221 {{1|(5<<4)}, { 16*5.5, 16}, 4},
222 {{1|(4<<4)}, { 16*4.5, 16}, 4},
223 {{1|(3<<4)}, { 16*3.5, 16}, 4},
224 {{1|(2<<4)}, { 16*2.5, 16}, 4},
225 {{1|(1<<4)}, { 16*1.5, 16}, 4},
226 {{1|(0<<4)}, { 16*0.25, 16}, 1},
227 {{2|(13<<4)}, {16*12.75, 32}, 1},
228 {{2|(11<<4)}, {16*11.75, 32}, 4},
229 {{2|(10<<4)}, {16*10.75, 32}, 4},
230 {{2|(9<<4)}, {16*9.75, 32}, 4},
231 {{2|(8<<4)}, {16*8.75, 32}, 4},
232 {{2|(7<<4)}, {16*7.75, 32}, 4},
233 {{2|(6<<4)}, { 16*6.75, 32}, 4},
234 {{2|(5<<4)}, { 16*5.75, 32}, 4},
235 {{2|(4<<4)}, { 16*4.75, 32}, 4},
236 {{2|(3<<4)}, { 16*3.75, 32}, 4},
237 {{2|(2<<4)}, { 16*2.75, 32}, 4},
238 {{2|(1<<4)}, { 16*1.75, 32}, 4},
239 {{2|(0<<4)}, { 16*0.375, 32}, 1},
240 {{3|(13<<4)}, {16*14, 48}, 1},
241 {{3|(11<<4)}, {16*12.625, 48}, 4},
242 {{3|(10<<4)}, {16*11.25, 48}, 4},
243 {{3|(9<<4)}, {16*10.25, 48}, 4},
244 {{3|(8<<4)}, {16*9.25, 48}, 4},
245 {{3|(7<<4)}, {16*8.25, 48}, 4},
246 {{3|(6<<4)}, {16*7.25, 48}, 4},
247 {{3|(5<<4)}, {16*6.25, 48}, 4},
248 {{3|(4<<4)}, {16*5.25, 48}, 4},
249 {{3|(3<<4)}, {16*4.25, 48}, 4},
250 {{3|(2<<4)}, {16*3.25, 48}, 4},
251 {{3|(1<<4)}, {16*1.25, 48}, 4},
252 {{3|(0<<4)}, {16*0.625, 48}, 1},
253 {{4|(13<<4)}, {16*13.625, 64}, 1},
254 {{4|(11<<4)}, {16*12.375, 64}, 1},
255 {{4|(10<<4)}, {16*11.125, 64}, 1},
256 {{4|(5<<4)}, { 16*7, 64}, 4},
257 {{4|(2<<4)}, { 16*2.875, 64}, 1},
258 {{4|(1<<4)}, { 16*1.625, 64}, 1},
259 {{4|(0<<4)}, { 16*0.375, 64}, 1},
260 };
261 #elif defined (dzrgb60_hhkb_iso)
262 const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
263 {0, H_15, G_15, I_15},
264 {0, K_14, J_14, L_14},
265 {0, K_13, J_13, L_13},
266 {0, K_12, J_12, L_12},
267 {0, K_11, J_11, L_11},
268 {0, K_10, J_10, L_10},
269 {0, K_9, J_9, L_9},
270 {0, K_8, J_8, L_8},
271 {0, K_7, J_7, L_7},
272 {0, K_6, J_6, L_6},
273 {0, K_5, J_5, L_5},
274 {0, K_4, J_4, L_4},
275 {0, K_3, J_3, L_3},
276 {0, K_2, J_2, L_2},
277 {0, K_1, J_1, L_1},
278 {0, K_15, J_15, L_15},
279 {0, H_13, G_13, I_13},
280 {0, H_12, G_12, I_12},
281 {0, H_11, G_11, I_11},
282 {0, H_10, G_10, I_10},
283 {0, H_9, G_9, I_9},
284 {0, H_8, G_8, I_8},
285 {0, H_7, G_7, I_7},
286 {0, H_6, G_6, I_6},
287 {0, H_5, G_5, I_5},
288 {0, H_4, G_4, I_4},
289 {0, H_3, G_3, I_3},
290 {0, H_2, G_2, I_2},
291 {0, H_1, G_1, I_1},
292 {0, E_15, D_15, F_15},
293 {0, E_12, D_12, F_12},
294 {0, E_11, D_11, F_11},
295 {0, E_10, D_10, F_10},
296 {0, E_9, D_9, F_9},
297 {0, E_8, D_8, F_8},
298 {0, E_7, D_7, F_7},
299 {0, E_6, D_6, F_6},
300 {0, E_5, D_5, F_5},
301 {0, E_4, D_4, F_4},
302 {0, E_3, D_3, F_3},
303 {0, E_2, D_2, F_2},
304 {0, E_1, D_1, F_1},
305 {0, B_14, A_14, C_14},
306 {0, B_13, A_13, C_13},
307 {0, B_11, A_11, C_11},
308 {0, B_10, A_10, C_10},
309 {0, B_9, A_9, C_9},
310 {0, B_8, A_8, C_8},
311 {0, B_7, A_7, C_7},
312 {0, B_6, A_6, C_6},
313 {0, B_5, A_5, C_5},
314 {0, B_4, A_4, C_4},
315 {0, B_3, A_3, C_3},
316 {0, B_2, A_2, C_2},
317 {0, B_1, A_1, C_1},
318 {0, B_15, A_15, C_15},
319 {0, E_13, D_13, F_13},
320 {0, B_12, A_12, C_12},
321 {0, B_16, A_16, C_16},
322 {0, E_16, D_16, F_16},
323 {0, H_16, G_16, I_16},
324 {0, K_16, J_16, L_16},
325 };
326
327 rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
328 {{2|(12<<4)}, {16*14, 0}, 1},
329 {{0|(13<<4)}, {16*13, 0}, 1},
330 {{0|(12<<4)}, {16*12, 0}, 1},
331 {{0|(11<<4)}, {16*11, 0}, 1},
332 {{0|(10<<4)}, {16*10, 0}, 1},
333 {{0|(9<<4)}, {16*9, 0}, 1},
334 {{0|(8<<4)}, {16*8, 0}, 1},
335 {{0|(7<<4)}, {16*7, 0}, 1},
336 {{0|(6<<4)}, {16*6, 0}, 1},
337 {{0|(5<<4)}, {16*5, 0}, 1},
338 {{0|(4<<4)}, {16*4, 0}, 1},
339 {{0|(3<<4)}, {16*3, 0}, 1},
340 {{0|(2<<4)}, {16*2, 0}, 1},
341 {{0|(1<<4)}, {16*1, 0}, 1},
342 {{0|(0<<4)}, {16*0, 0}, 1},
343 {{2|(13<<4)}, {16*13.75, 24}, 1},
344 {{1|(12<<4)}, {16*12.5, 16}, 4},
345 {{1|(11<<4)}, {16*11.5, 16}, 4},
346 {{1|(10<<4)}, {16*10.5, 16}, 4},
347 {{1|(9<<4)}, { 16*9.5, 16}, 4},
348 {{1|(8<<4)}, { 16*8.5, 16}, 4},
349 {{1|(7<<4)}, { 16*7.5, 16}, 4},
350 {{1|(6<<4)}, { 16*6.5, 16}, 4},
351 {{1|(5<<4)}, { 16*5.5, 16}, 4},
352 {{1|(4<<4)}, { 16*4.5, 16}, 4},
353 {{1|(3<<4)}, { 16*3.5, 16}, 4},
354 {{1|(2<<4)}, { 16*2.5, 16}, 4},
355 {{1|(1<<4)}, { 16*1.5, 16}, 4},
356 {{1|(0<<4)}, { 16*0.25, 16}, 1},
357 {{1|(13<<4)}, {16*12.75, 32}, 1},
358 {{2|(11<<4)}, {16*11.75, 32}, 4},
359 {{2|(10<<4)}, {16*10.75, 32}, 4},
360 {{2|(9<<4)}, {16*9.75, 32}, 4},
361 {{2|(8<<4)}, {16*8.75, 32}, 4},
362 {{2|(7<<4)}, {16*7.75, 32}, 4},
363 {{2|(6<<4)}, { 16*6.75, 32}, 4},
364 {{2|(5<<4)}, { 16*5.75, 32}, 4},
365 {{2|(4<<4)}, { 16*4.75, 32}, 4},
366 {{2|(3<<4)}, { 16*3.75, 32}, 4},
367 {{2|(2<<4)}, { 16*2.75, 32}, 4},
368 {{2|(1<<4)}, { 16*1.75, 32}, 4},
369 {{2|(0<<4)}, { 16*0.375, 32}, 1},
370 {{3|(13<<4)}, {16*14, 48}, 1},
371 {{3|(11<<4)}, {16*12.625, 48}, 4},
372 {{3|(10<<4)}, {16*11.25, 48}, 4},
373 {{3|(9<<4)}, {16*10.25, 48}, 4},
374 {{3|(8<<4)}, {16*9.25, 48}, 4},
375 {{3|(7<<4)}, {16*8.25, 48}, 4},
376 {{3|(6<<4)}, {16*7.25, 48}, 4},
377 {{3|(5<<4)}, {16*6.25, 48}, 4},
378 {{3|(4<<4)}, {16*5.25, 48}, 4},
379 {{3|(3<<4)}, {16*4.25, 48}, 4},
380 {{3|(2<<4)}, {16*3.25, 48}, 4},
381 {{3|(1<<4)}, {16*1.25, 48}, 4},
382 {{3|(0<<4)}, {16*0.625, 48}, 1},
383 {{4|(13<<4)}, {16*13.625, 64}, 1},
384 {{4|(11<<4)}, {16*12.375, 64}, 1},
385 {{4|(10<<4)}, {16*11.125, 64}, 1},
386 {{4|(5<<4)}, { 16*7, 64}, 4},
387 {{4|(2<<4)}, { 16*2.875, 64}, 1},
388 {{4|(1<<4)}, { 16*1.625, 64}, 1},
389 {{4|(0<<4)}, { 16*0.375, 64}, 1},
390 };
391 #elif defined (dzrgb60_ansi)
392 const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
393 {0, K_14, J_14, L_14},
394 {0, K_13, J_13, L_13},
395 {0, K_12, J_12, L_12},
396 {0, K_11, J_11, L_11},
397 {0, K_10, J_10, L_10},
398 {0, K_9, J_9, L_9},
399 {0, K_8, J_8, L_8},
400 {0, K_7, J_7, L_7},
401 {0, K_6, J_6, L_6},
402 {0, K_5, J_5, L_5},
403 {0, K_4, J_4, L_4},
404 {0, K_3, J_3, L_3},
405 {0, K_2, J_2, L_2},
406 {0, K_1, J_1, L_1},
407 {0, H_14, G_14, I_14},
408 {0, H_13, G_13, I_13},
409 {0, H_12, G_12, I_12},
410 {0, H_11, G_11, I_11},
411 {0, H_10, G_10, I_10},
412 {0, H_9, G_9, I_9},
413 {0, H_8, G_8, I_8},
414 {0, H_7, G_7, I_7},
415 {0, H_6, G_6, I_6},
416 {0, H_5, G_5, I_5},
417 {0, H_4, G_4, I_4},
418 {0, H_3, G_3, I_3},
419 {0, H_2, G_2, I_2},
420 {0, H_1, G_1, I_1},
421 {0, E_14, D_14, F_14},
422 {0, E_12, D_12, F_12},
423 {0, E_11, D_11, F_11},
424 {0, E_10, D_10, F_10},
425 {0, E_9, D_9, F_9},
426 {0, E_8, D_8, F_8},
427 {0, E_7, D_7, F_7},
428 {0, E_6, D_6, F_6},
429 {0, E_5, D_5, F_5},
430 {0, E_4, D_4, F_4},
431 {0, E_3, D_3, F_3},
432 {0, E_2, D_2, F_2},
433 {0, E_1, D_1, F_1},
434 {0, B_13, A_13, C_13},
435 {0, B_11, A_11, C_11},
436 {0, B_10, A_10, C_10},
437 {0, B_9, A_9, C_9},
438 {0, B_8, A_8, C_8},
439 {0, B_7, A_7, C_7},
440 {0, B_6, A_6, C_6},
441 {0, B_5, A_5, C_5},
442 {0, B_4, A_4, C_4},
443 {0, B_3, A_3, C_3},
444 {0, B_2, A_2, C_2},
445 {0, B_1, A_1, C_1},
446 {0, B_15, A_15, C_15},
447 {0, E_13, D_13, F_13},
448 {0, B_12, A_12, C_12},
449 {0, E_15, D_15, F_15},
450 {0, B_16, A_16, C_16},
451 {0, E_16, D_16, F_16},
452 {0, H_16, G_16, I_16},
453 {0, K_16, J_16, L_16},
454 };
455
456 rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
457 {{0|(13<<4)}, {16*13.5, 0}, 1},
458 {{0|(12<<4)}, {16*12, 0}, 1},
459 {{0|(11<<4)}, {16*11, 0}, 1},
460 {{0|(10<<4)}, {16*10, 0}, 1},
461 {{0|(9<<4)}, {16*9, 0}, 1},
462 {{0|(8<<4)}, {16*8, 0}, 1},
463 {{0|(7<<4)}, {16*7, 0}, 1},
464 {{0|(6<<4)}, {16*6, 0}, 1},
465 {{0|(5<<4)}, {16*5, 0}, 1},
466 {{0|(4<<4)}, {16*4, 0}, 1},
467 {{0|(3<<4)}, {16*3, 0}, 1},
468 {{0|(2<<4)}, {16*2, 0}, 1},
469 {{0|(1<<4)}, {16*1, 0}, 1},
470 {{0|(0<<4)}, {16*0, 0}, 1},
471 {{1|(13<<4)}, {16*13.75, 16}, 1},
472 {{1|(12<<4)}, {16*12.5, 16}, 4},
473 {{1|(11<<4)}, {16*11.5, 16}, 4},
474 {{1|(10<<4)}, {16*10.5, 16}, 4},
475 {{1|(9<<4)}, { 16*9.5, 16}, 4},
476 {{1|(8<<4)}, { 16*8.5, 16}, 4},
477 {{1|(7<<4)}, { 16*7.5, 16}, 4},
478 {{1|(6<<4)}, { 16*6.5, 16}, 4},
479 {{1|(5<<4)}, { 16*5.5, 16}, 4},
480 {{1|(4<<4)}, { 16*4.5, 16}, 4},
481 {{1|(3<<4)}, { 16*3.5, 16}, 4},
482 {{1|(2<<4)}, { 16*2.5, 16}, 4},
483 {{1|(1<<4)}, { 16*1.5, 16}, 4},
484 {{1|(0<<4)}, { 16*0.25, 16}, 1},
485 {{2|(13<<4)}, {16*13.375, 24}, 1},
486 {{2|(11<<4)}, {16*11.75, 32}, 4},
487 {{2|(10<<4)}, {16*10.75, 32}, 4},
488 {{2|(9<<4)}, {16*9.75, 32}, 4},
489 {{2|(8<<4)}, {16*8.75, 32}, 4},
490 {{2|(7<<4)}, {16*7.75, 32}, 4},
491 {{2|(6<<4)}, { 16*6.75, 32}, 4},
492 {{2|(5<<4)}, { 16*5.75, 32}, 4},
493 {{2|(4<<4)}, { 16*4.75, 32}, 4},
494 {{2|(3<<4)}, { 16*3.75, 32}, 4},
495 {{2|(2<<4)}, { 16*2.75, 32}, 4},
496 {{2|(1<<4)}, { 16*1.75, 32}, 4},
497 {{2|(0<<4)}, { 16*0.375, 32}, 1},
498 {{3|(11<<4)}, {16*13.125, 48}, 1},
499 {{3|(10<<4)}, {16*11.25, 48}, 4},
500 {{3|(9<<4)}, {16*10.25, 48}, 4},
501 {{3|(8<<4)}, {16*9.25, 48}, 4},
502 {{3|(7<<4)}, {16*8.25, 48}, 4},
503 {{3|(6<<4)}, {16*7.25, 48}, 4},
504 {{3|(5<<4)}, {16*6.25, 48}, 4},
505 {{3|(4<<4)}, {16*5.25, 48}, 4},
506 {{3|(3<<4)}, {16*4.25, 48}, 4},
507 {{3|(2<<4)}, {16*3.25, 48}, 4},
508 {{3|(1<<4)}, {16*1.25, 48}, 4},
509 {{3|(0<<4)}, {16*0.625, 48}, 1},
510 {{4|(13<<4)}, {16*13.875, 64}, 1},
511 {{4|(11<<4)}, {16*12.625, 64}, 1},
512 {{4|(10<<4)}, {16*11.375, 64}, 1},
513 {{4|(9<<4)}, {16*10.125, 64}, 1},
514 {{4|(5<<4)}, { 16*6.375, 64}, 4},
515 {{4|(2<<4)}, { 16*2.625, 64}, 1},
516 {{4|(1<<4)}, { 16*1.375, 64}, 1},
517 {{4|(0<<4)}, { 16*0.125, 64}, 1},
518 };
519 #else
520 const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
521 {0, K_14, J_14, L_14},
522 {0, K_13, J_13, L_13},
523 {0, K_12, J_12, L_12},
524 {0, K_11, J_11, L_11},
525 {0, K_10, J_10, L_10},
526 {0, K_9, J_9, L_9},
527 {0, K_8, J_8, L_8},
528 {0, K_7, J_7, L_7},
529 {0, K_6, J_6, L_6},
530 {0, K_5, J_5, L_5},
531 {0, K_4, J_4, L_4},
532 {0, K_3, J_3, L_3},
533 {0, K_2, J_2, L_2},
534 {0, K_1, J_1, L_1},
535 {0, H_14, G_14, I_14},
536 {0, H_13, G_13, I_13},
537 {0, H_12, G_12, I_12},
538 {0, H_11, G_11, I_11},
539 {0, H_10, G_10, I_10},
540 {0, H_9, G_9, I_9},
541 {0, H_8, G_8, I_8},
542 {0, H_7, G_7, I_7},
543 {0, H_6, G_6, I_6},
544 {0, H_5, G_5, I_5},
545 {0, H_4, G_4, I_4},
546 {0, H_3, G_3, I_3},
547 {0, H_2, G_2, I_2},
548 {0, H_1, G_1, I_1},
549 {0, E_14, D_14, F_14},
550 {0, E_12, D_12, F_12},
551 {0, E_11, D_11, F_11},
552 {0, E_10, D_10, F_10},
553 {0, E_9, D_9, F_9},
554 {0, E_8, D_8, F_8},
555 {0, E_7, D_7, F_7},
556 {0, E_6, D_6, F_6},
557 {0, E_5, D_5, F_5},
558 {0, E_4, D_4, F_4},
559 {0, E_3, D_3, F_3},
560 {0, E_2, D_2, F_2},
561 {0, E_1, D_1, F_1},
562 {0, B_14, A_14, C_14},
563 {0, B_13, A_13, C_13},
564 {0, B_11, A_11, C_11},
565 {0, B_10, A_10, C_10},
566 {0, B_9, A_9, C_9},
567 {0, B_8, A_8, C_8},
568 {0, B_7, A_7, C_7},
569 {0, B_6, A_6, C_6},
570 {0, B_5, A_5, C_5},
571 {0, B_4, A_4, C_4},
572 {0, B_3, A_3, C_3},
573 {0, B_2, A_2, C_2},
574 {0, B_1, A_1, C_1},
575 {0, B_15, A_15, C_15},
576 {0, E_13, D_13, F_13},
577 {0, B_12, A_12, C_12},
578 {0, E_15, D_15, F_15},
579 {0, H_15, G_15, I_15},
580 {0, B_16, A_16, C_16},
581 {0, E_16, D_16, F_16},
582 {0, H_16, G_16, I_16},
583 {0, K_16, J_16, L_16},
584 };
585
586 rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
587 {{0|(13<<4)}, {17.23*13, 0}, 1},
588 {{0|(12<<4)}, {17.23*12, 0}, 1},
589 {{0|(11<<4)}, {17.23*11, 0}, 1},
590 {{0|(10<<4)}, {17.23*10, 0}, 1},
591 {{0|(9<<4)}, {17.23*9, 0}, 1},
592 {{0|(8<<4)}, {17.23*8, 0}, 1},
593 {{0|(7<<4)}, {17.23*7, 0}, 1},
594 {{0|(6<<4)}, { 17.23*6, 0}, 1},
595 {{0|(5<<4)}, { 17.23*5, 0}, 1},
596 {{0|(4<<4)}, { 17.23*4, 0}, 1},
597 {{0|(3<<4)}, { 17.23*3, 0}, 1},
598 {{0|(2<<4)}, { 17.23*2, 0}, 1},
599 {{0|(1<<4)}, { 17.23*1, 0}, 1},
600 {{0|(0<<4)}, { 17.23*0, 0}, 1},
601 {{1|(13<<4)}, {17.23*13, 16}, 1},
602 {{1|(12<<4)}, {17.23*12, 16}, 4},
603 {{1|(11<<4)}, {17.23*11, 16}, 4},
604 {{1|(10<<4)}, {17.23*10, 16}, 4},
605 {{1|(9<<4)}, {17.23*9, 16}, 4},
606 {{1|(8<<4)}, {17.23*8, 16}, 4},
607 {{1|(7<<4)}, {17.23*7, 16}, 4},
608 {{1|(6<<4)}, { 17.23*6, 16}, 4},
609 {{1|(5<<4)}, { 17.23*5, 16}, 4},
610 {{1|(4<<4)}, { 17.23*4, 16}, 4},
611 {{1|(3<<4)}, { 17.23*3, 16}, 4},
612 {{1|(2<<4)}, { 17.23*2, 16}, 4},
613 {{1|(1<<4)}, { 17.23*1, 16}, 4},
614 {{1|(0<<4)}, { 17.23*0, 16}, 1},
615 {{2|(13<<4)}, {17.23*13, 32}, 1},
616 {{2|(11<<4)}, {17.23*11, 32}, 4},
617 {{2|(10<<4)}, {17.23*10, 32}, 4},
618 {{2|(9<<4)}, {17.23*9, 32}, 4},
619 {{2|(8<<4)}, {17.23*8, 32}, 4},
620 {{2|(7<<4)}, {17.23*7, 32}, 4},
621 {{2|(6<<4)}, { 17.23*6, 32}, 4},
622 {{2|(5<<4)}, { 17.23*5, 32}, 4},
623 {{2|(4<<4)}, { 17.23*4, 32}, 4},
624 {{2|(3<<4)}, { 17.23*3, 32}, 4},
625 {{2|(2<<4)}, { 17.23*2, 32}, 4},
626 {{2|(1<<4)}, { 17.23*1, 32}, 4},
627 {{2|(0<<4)}, { 17.23*0, 32}, 1},
628 {{3|(13<<4)}, {17.23*13, 48}, 1},
629 {{3|(11<<4)}, {17.23*11, 48}, 4},
630 {{3|(10<<4)}, {17.23*10, 48}, 4},
631 {{3|(9<<4)}, {17.23*9, 48}, 4},
632 {{3|(8<<4)}, {17.23*8, 48}, 4},
633 {{3|(7<<4)}, {17.23*7, 48}, 4},
634 {{3|(6<<4)}, { 17.23*6, 48}, 4},
635 {{3|(5<<4)}, { 17.23*5, 48}, 4},
636 {{3|(4<<4)}, { 17.23*4, 48}, 4},
637 {{3|(3<<4)}, { 17.23*3, 48}, 4},
638 {{3|(2<<4)}, { 17.23*2, 48}, 4},
639 {{3|(1<<4)}, { 17.23*1, 48}, 4},
640 {{3|(0<<4)}, { 17.23*0, 48}, 1},
641 {{4|(13<<4)}, {17.23*13, 64}, 1},
642 {{4|(11<<4)}, {17.23*11, 64}, 1},
643 {{4|(10<<4)}, {17.23*10, 64}, 1},
644 {{4|(9<<4)}, {17.23*9, 64}, 1},
645 {{4|(8<<4)}, {17.23*8, 64}, 1},
646 {{4|(5<<4)}, { 17.23*5, 64}, 4},
647 {{4|(2<<4)}, { 17.23*2, 64}, 1},
648 {{4|(1<<4)}, { 17.23*1, 64}, 1},
649 {{4|(0<<4)}, { 17.23*0, 64}, 1},
650 };
651 #endif
652
653 void matrix_init_kb(void) {
654 matrix_init_user();
655 }
656 void matrix_scan_kb(void) {
657 matrix_scan_user();
658 }
659 bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
660 return process_record_user(keycode, record);
661 }
662 void suspend_power_down_kb(void)
663 {
664 rgb_matrix_set_suspend_state(true);
665 suspend_power_down_user();
666 }
667
668 void suspend_wakeup_init_kb(void)
669 {
670 rgb_matrix_set_suspend_state(false);
671 suspend_wakeup_init_user();
672 }