aboutsummaryrefslogtreecommitdiff
path: root/quantum/quantum.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r--quantum/quantum.c168
1 files changed, 7 insertions, 161 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 2def99ac8..4c501785c 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -16,10 +16,6 @@
16 16
17#include "quantum.h" 17#include "quantum.h"
18 18
19#if !defined(RGBLIGHT_ENABLE) && !defined(RGB_MATRIX_ENABLE)
20# include "rgb.h"
21#endif
22
23#ifdef PROTOCOL_LUFA 19#ifdef PROTOCOL_LUFA
24# include "outputselect.h" 20# include "outputselect.h"
25#endif 21#endif
@@ -254,6 +250,9 @@ bool process_record_quantum(keyrecord_t *record) {
254#ifdef MAGIC_KEYCODE_ENABLE 250#ifdef MAGIC_KEYCODE_ENABLE
255 process_magic(keycode, record) && 251 process_magic(keycode, record) &&
256#endif 252#endif
253#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
254 process_rgb(keycode, record) &&
255#endif
257 true)) { 256 true)) {
258 return false; 257 return false;
259 } 258 }
@@ -293,176 +292,24 @@ bool process_record_quantum(keyrecord_t *record) {
293 return false; 292 return false;
294#endif 293#endif
295#ifdef BLUETOOTH_ENABLE 294#ifdef BLUETOOTH_ENABLE
296 case OUT_AUTO: 295 case OUT_AUTO:
297 set_output(OUTPUT_AUTO); 296 set_output(OUTPUT_AUTO);
298 return false; 297 return false;
299 case OUT_USB: 298 case OUT_USB:
300 set_output(OUTPUT_USB); 299 set_output(OUTPUT_USB);
301 return false; 300 return false;
302 case OUT_BT: 301 case OUT_BT:
303 set_output(OUTPUT_BLUETOOTH); 302 set_output(OUTPUT_BLUETOOTH);
304 return false; 303 return false;
305#endif 304#endif
306#if defined(BACKLIGHT_ENABLE) && defined(BACKLIGHT_BREATHING) 305#if defined(BACKLIGHT_ENABLE) && defined(BACKLIGHT_BREATHING)
307 case BL_BRTG: 306 case BL_BRTG:
308 backlight_toggle_breathing(); 307 backlight_toggle_breathing();
309 return false; 308 return false;
310#endif 309#endif
311 } 310 }
312 } 311 }
313 312
314#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
315# ifndef SPLIT_KEYBOARD
316 if (record->event.pressed) {
317# else
318 // Split keyboards need to trigger on key-up for edge-case issue
319 if (!record->event.pressed) {
320# endif
321 uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT));
322 switch (keycode) {
323 case RGB_TOG:
324 rgblight_toggle();
325 return false;
326 case RGB_MODE_FORWARD:
327 if (shifted) {
328 rgblight_step_reverse();
329 } else {
330 rgblight_step();
331 }
332 return false;
333 case RGB_MODE_REVERSE:
334 if (shifted) {
335 rgblight_step();
336 } else {
337 rgblight_step_reverse();
338 }
339 return false;
340 case RGB_HUI:
341 if (shifted) {
342 rgblight_decrease_hue();
343 } else {
344 rgblight_increase_hue();
345 }
346 return false;
347 case RGB_HUD:
348 if (shifted) {
349 rgblight_increase_hue();
350 } else {
351 rgblight_decrease_hue();
352 }
353 return false;
354 case RGB_SAI:
355 if (shifted) {
356 rgblight_decrease_sat();
357 } else {
358 rgblight_increase_sat();
359 }
360 return false;
361 case RGB_SAD:
362 if (shifted) {
363 rgblight_increase_sat();
364 } else {
365 rgblight_decrease_sat();
366 }
367 return false;
368 case RGB_VAI:
369 if (shifted) {
370 rgblight_decrease_val();
371 } else {
372 rgblight_increase_val();
373 }
374 return false;
375 case RGB_VAD:
376 if (shifted) {
377 rgblight_increase_val();
378 } else {
379 rgblight_decrease_val();
380 }
381 return false;
382 case RGB_SPI:
383 if (shifted) {
384 rgblight_decrease_speed();
385 } else {
386 rgblight_increase_speed();
387 }
388 return false;
389 case RGB_SPD:
390 if (shifted) {
391 rgblight_increase_speed();
392 } else {
393 rgblight_decrease_speed();
394 }
395 return false;
396 case RGB_MODE_PLAIN:
397 rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
398 return false;
399 case RGB_MODE_BREATHE:
400# ifdef RGBLIGHT_EFFECT_BREATHING
401 if ((RGBLIGHT_MODE_BREATHING <= rgblight_get_mode()) && (rgblight_get_mode() < RGBLIGHT_MODE_BREATHING_end)) {
402 rgblight_step();
403 } else {
404 rgblight_mode(RGBLIGHT_MODE_BREATHING);
405 }
406# endif
407 return false;
408 case RGB_MODE_RAINBOW:
409# ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
410 if ((RGBLIGHT_MODE_RAINBOW_MOOD <= rgblight_get_mode()) && (rgblight_get_mode() < RGBLIGHT_MODE_RAINBOW_MOOD_end)) {
411 rgblight_step();
412 } else {
413 rgblight_mode(RGBLIGHT_MODE_RAINBOW_MOOD);
414 }
415# endif
416 case RGB_MODE_SWIRL:
417# ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
418 if ((RGBLIGHT_MODE_RAINBOW_SWIRL <= rgblight_get_mode()) && (rgblight_get_mode() < RGBLIGHT_MODE_RAINBOW_SWIRL_end)) {
419 rgblight_step();
420 } else {
421 rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL);
422 }
423# endif
424 return false;
425 case RGB_MODE_SNAKE:
426# ifdef RGBLIGHT_EFFECT_SNAKE
427 if ((RGBLIGHT_MODE_SNAKE <= rgblight_get_mode()) && (rgblight_get_mode() < RGBLIGHT_MODE_SNAKE_end)) {
428 rgblight_step();
429 } else {
430 rgblight_mode(RGBLIGHT_MODE_SNAKE);
431 }
432# endif
433 return false;
434 case RGB_MODE_KNIGHT:
435# ifdef RGBLIGHT_EFFECT_KNIGHT
436 if ((RGBLIGHT_MODE_KNIGHT <= rgblight_get_mode()) && (rgblight_get_mode() < RGBLIGHT_MODE_KNIGHT_end)) {
437 rgblight_step();
438 } else {
439 rgblight_mode(RGBLIGHT_MODE_KNIGHT);
440 }
441# endif
442 return false;
443 case RGB_MODE_XMAS:
444# ifdef RGBLIGHT_EFFECT_CHRISTMAS
445 rgblight_mode(RGBLIGHT_MODE_CHRISTMAS);
446# endif
447 return false;
448 case RGB_MODE_GRADIENT:
449# ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
450 if ((RGBLIGHT_MODE_STATIC_GRADIENT <= rgblight_get_mode()) && (rgblight_get_mode() < RGBLIGHT_MODE_STATIC_GRADIENT_end)) {
451 rgblight_step();
452 } else {
453 rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT);
454 }
455# endif
456 return false;
457 case RGB_MODE_RGBTEST:
458# ifdef RGBLIGHT_EFFECT_RGB_TEST
459 rgblight_mode(RGBLIGHT_MODE_RGB_TEST);
460# endif
461 return false;
462 }
463 }
464#endif
465
466 // keycodes that depend on both pressed and non-pressed state 313 // keycodes that depend on both pressed and non-pressed state
467 switch (keycode) { 314 switch (keycode) {
468 case GRAVE_ESC: { 315 case GRAVE_ESC: {
@@ -513,7 +360,6 @@ bool process_record_quantum(keyrecord_t *record) {
513 send_keyboard_report(); 360 send_keyboard_report();
514 return false; 361 return false;
515 } 362 }
516
517 } 363 }
518 364
519 return process_action_kb(record); 365 return process_action_kb(record);