Commit | Line | Data |
---|---|---|
0a40654b YL |
1 | #ifndef RGBLIGHT_H |
2 | #define RGBLIGHT_H | |
3 | ||
3774a7fc | 4 | #ifdef RGBLIGHT_ANIMATIONS |
cae269b0 | 5 | #define RGBLIGHT_MODES 24 |
57e08eb8 JH |
6 | #else |
7 | #define RGBLIGHT_MODES 1 | |
0a40654b YL |
8 | #endif |
9 | ||
10 | #ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH | |
11 | #define RGBLIGHT_EFFECT_SNAKE_LENGTH 7 | |
12 | #endif | |
13 | ||
14 | #ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH | |
15 | #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7 | |
16 | #endif | |
17 | #ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET | |
2647c7cd | 18 | #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 9 |
0a40654b YL |
19 | #endif |
20 | ||
21 | #ifndef RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH | |
22 | #define RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH 4 | |
23 | #endif | |
24 | ||
25 | #ifndef RGBLIGHT_HUE_STEP | |
26 | #define RGBLIGHT_HUE_STEP 10 | |
27 | #endif | |
28 | #ifndef RGBLIGHT_SAT_STEP | |
29 | #define RGBLIGHT_SAT_STEP 17 | |
30 | #endif | |
31 | #ifndef RGBLIGHT_VAL_STEP | |
32 | #define RGBLIGHT_VAL_STEP 17 | |
33 | #endif | |
34 | ||
35 | #define RGBLED_TIMER_TOP F_CPU/(256*64) | |
e9f74875 | 36 | // #define RGBLED_TIMER_TOP 0xFF10 |
0a40654b YL |
37 | |
38 | #include <stdint.h> | |
39 | #include <stdbool.h> | |
40 | #include "eeconfig.h" | |
41 | #include "light_ws2812.h" | |
42 | ||
748181dc SW |
43 | extern LED_TYPE led[RGBLED_NUM]; |
44 | ||
9b0e21f8 FS |
45 | extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM; |
46 | extern const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[3] PROGMEM; | |
47 | extern const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[3] PROGMEM; | |
48 | extern const uint8_t RGBLED_SNAKE_INTERVALS[3] PROGMEM; | |
49 | extern const uint8_t RGBLED_KNIGHT_INTERVALS[3] PROGMEM; | |
50 | ||
0a40654b YL |
51 | typedef union { |
52 | uint32_t raw; | |
53 | struct { | |
54 | bool enable :1; | |
55 | uint8_t mode :6; | |
56 | uint16_t hue :9; | |
57 | uint8_t sat :8; | |
58 | uint8_t val :8; | |
59 | }; | |
60 | } rgblight_config_t; | |
61 | ||
62 | void rgblight_init(void); | |
63 | void rgblight_increase(void); | |
64 | void rgblight_decrease(void); | |
65 | void rgblight_toggle(void); | |
285c5a91 | 66 | void rgblight_enable(void); |
0a40654b YL |
67 | void rgblight_step(void); |
68 | void rgblight_mode(uint8_t mode); | |
69 | void rgblight_set(void); | |
2e23689b | 70 | void rgblight_update_dword(uint32_t dword); |
0a40654b YL |
71 | void rgblight_increase_hue(void); |
72 | void rgblight_decrease_hue(void); | |
73 | void rgblight_increase_sat(void); | |
74 | void rgblight_decrease_sat(void); | |
75 | void rgblight_increase_val(void); | |
76 | void rgblight_decrease_val(void); | |
77 | void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val); | |
78 | void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b); | |
79 | ||
0a40654b | 80 | uint32_t eeconfig_read_rgblight(void); |
620ac4b2 ET |
81 | void eeconfig_update_rgblight(uint32_t val); |
82 | void eeconfig_update_rgblight_default(void); | |
0a40654b YL |
83 | void eeconfig_debug_rgblight(void); |
84 | ||
e9f74875 JH |
85 | void sethsv(uint16_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); |
86 | void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1); | |
0a40654b YL |
87 | void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val); |
88 | ||
4094544d EZ |
89 | #define EZ_RGB(val) rgblight_show_solid_color((val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF) |
90 | void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b); | |
e9f74875 JH |
91 | |
92 | void rgblight_task(void); | |
93 | ||
0a40654b YL |
94 | void rgblight_timer_init(void); |
95 | void rgblight_timer_enable(void); | |
96 | void rgblight_timer_disable(void); | |
97 | void rgblight_timer_toggle(void); | |
98 | void rgblight_effect_breathing(uint8_t interval); | |
99 | void rgblight_effect_rainbow_mood(uint8_t interval); | |
100 | void rgblight_effect_rainbow_swirl(uint8_t interval); | |
101 | void rgblight_effect_snake(uint8_t interval); | |
102 | void rgblight_effect_knight(uint8_t interval); | |
cae269b0 | 103 | void rgblight_effect_christmas(void); |
0a40654b YL |
104 | |
105 | #endif |