Jack Humbert 8 жил өмнө
parent
commit
cae269b08b
2 өөрчлөгдсөн 23 нэмэгдсэн , 1 устгасан
  1. 21 0
      quantum/rgblight.c
  2. 2 1
      quantum/rgblight.h

+ 21 - 0
quantum/rgblight.c

@@ -449,6 +449,9 @@ void rgblight_task(void) {
     } else if (rgblight_config.mode >= 21 && rgblight_config.mode <= 23) {
       // mode = 21 to 23, knight mode
       rgblight_effect_knight(rgblight_config.mode - 21);
+    } else {
+      // mode = 24, christmas mode
+      rgblight_effect_christmas();
     }
   }
 }
@@ -594,4 +597,22 @@ void rgblight_effect_knight(uint8_t interval) {
   }
 }
 
+
+void rgblight_effect_christmas(void) {
+  static uint16_t current_offset = 0;
+  static uint16_t last_timer = 0;
+  uint16_t hue;
+  uint8_t i;
+  if (timer_elapsed(last_timer) < 1000) {
+    return;
+  }
+  last_timer = timer_read();
+  current_offset = (current_offset + 1) % 2;
+  for (i = 0; i < RGBLED_NUM; i++) {
+    hue = 0 + ((RGBLED_NUM * (i + current_offset)) % 2) * 80;
+    sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]);
+  }
+  rgblight_set();
+}
+
 #endif

+ 2 - 1
quantum/rgblight.h

@@ -2,7 +2,7 @@
 #define RGBLIGHT_H
 
 #ifdef RGBLIGHT_ANIMATIONS
-	#define RGBLIGHT_MODES 23
+	#define RGBLIGHT_MODES 24
 #else
 	#define RGBLIGHT_MODES 1
 #endif
@@ -98,5 +98,6 @@ void rgblight_effect_rainbow_mood(uint8_t interval);
 void rgblight_effect_rainbow_swirl(uint8_t interval);
 void rgblight_effect_snake(uint8_t interval);
 void rgblight_effect_knight(uint8_t interval);
+void rgblight_effect_christmas(void);
 
 #endif