Commit | Line | Data |
---|---|---|
0a40654b YL |
1 | #ifndef RGBLIGHT_H |
2 | #define RGBLIGHT_H | |
3 | ||
57e08eb8 JH |
4 | |
5 | #if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) | |
6 | #define RGBLIGHT_MODES 23 | |
7 | #else | |
8 | #define RGBLIGHT_MODES 1 | |
0a40654b YL |
9 | #endif |
10 | ||
11 | #ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH | |
12 | #define RGBLIGHT_EFFECT_SNAKE_LENGTH 7 | |
13 | #endif | |
14 | ||
15 | #ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH | |
16 | #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7 | |
17 | #endif | |
18 | #ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET | |
2647c7cd | 19 | #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 9 |
0a40654b YL |
20 | #endif |
21 | ||
22 | #ifndef RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH | |
23 | #define RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH 4 | |
24 | #endif | |
25 | ||
26 | #ifndef RGBLIGHT_HUE_STEP | |
27 | #define RGBLIGHT_HUE_STEP 10 | |
28 | #endif | |
29 | #ifndef RGBLIGHT_SAT_STEP | |
30 | #define RGBLIGHT_SAT_STEP 17 | |
31 | #endif | |
32 | #ifndef RGBLIGHT_VAL_STEP | |
33 | #define RGBLIGHT_VAL_STEP 17 | |
34 | #endif | |
35 | ||
36 | #define RGBLED_TIMER_TOP F_CPU/(256*64) | |
37 | ||
38 | #include <stdint.h> | |
39 | #include <stdbool.h> | |
40 | #include "eeconfig.h" | |
41 | #include "light_ws2812.h" | |
42 | ||
43 | typedef union { | |
44 | uint32_t raw; | |
45 | struct { | |
46 | bool enable :1; | |
47 | uint8_t mode :6; | |
48 | uint16_t hue :9; | |
49 | uint8_t sat :8; | |
50 | uint8_t val :8; | |
51 | }; | |
52 | } rgblight_config_t; | |
53 | ||
54 | void rgblight_init(void); | |
55 | void rgblight_increase(void); | |
56 | void rgblight_decrease(void); | |
57 | void rgblight_toggle(void); | |
58 | void rgblight_step(void); | |
59 | void rgblight_mode(uint8_t mode); | |
60 | void rgblight_set(void); | |
61 | void rgblight_increase_hue(void); | |
62 | void rgblight_decrease_hue(void); | |
63 | void rgblight_increase_sat(void); | |
64 | void rgblight_decrease_sat(void); | |
65 | void rgblight_increase_val(void); | |
66 | void rgblight_decrease_val(void); | |
67 | void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val); | |
68 | void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b); | |
69 | ||
0a40654b | 70 | uint32_t eeconfig_read_rgblight(void); |
620ac4b2 ET |
71 | void eeconfig_update_rgblight(uint32_t val); |
72 | void eeconfig_update_rgblight_default(void); | |
0a40654b YL |
73 | void eeconfig_debug_rgblight(void); |
74 | ||
75 | void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1); | |
76 | void setrgb(uint8_t r, uint8_t g, uint8_t b, struct cRGB *led1); | |
77 | void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val); | |
78 | ||
79 | void rgblight_timer_init(void); | |
80 | void rgblight_timer_enable(void); | |
81 | void rgblight_timer_disable(void); | |
82 | void rgblight_timer_toggle(void); | |
83 | void rgblight_effect_breathing(uint8_t interval); | |
84 | void rgblight_effect_rainbow_mood(uint8_t interval); | |
85 | void rgblight_effect_rainbow_swirl(uint8_t interval); | |
86 | void rgblight_effect_snake(uint8_t interval); | |
87 | void rgblight_effect_knight(uint8_t interval); | |
88 | ||
89 | #endif |