Merge remote-tracking branch 'origin/master' into develop

master
QMK Bot 2021-07-17 03:13:57 +00:00
commit d1295ffe9a
1 changed files with 96 additions and 100 deletions

View File

@ -115,73 +115,71 @@ enum RGBLIGHT_EFFECT_MODE {
RGBLIGHT_MODE_last RGBLIGHT_MODE_last
}; };
#ifndef RGBLIGHT_H_DUMMY_DEFINE #define RGBLIGHT_MODES (RGBLIGHT_MODE_last - 1)
# define RGBLIGHT_MODES (RGBLIGHT_MODE_last - 1)
// sample: #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // sample: #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85
# ifndef RGBLIGHT_EFFECT_BREATHE_MAX #ifndef RGBLIGHT_EFFECT_BREATHE_MAX
# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0-255 # define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0-255
# endif #endif
# ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH #ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH
# define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 # define RGBLIGHT_EFFECT_SNAKE_LENGTH 4
# endif #endif
# ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH #ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH
# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 # define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
# endif #endif
# ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET #ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET
# define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0 # define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0
# endif #endif
# ifndef RGBLIGHT_EFFECT_KNIGHT_LED_NUM #ifndef RGBLIGHT_EFFECT_KNIGHT_LED_NUM
# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM (rgblight_ranges.effect_num_leds) # define RGBLIGHT_EFFECT_KNIGHT_LED_NUM (rgblight_ranges.effect_num_leds)
# endif #endif
# ifndef RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL #ifndef RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL
# define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 40 # define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 40
# endif #endif
# ifndef RGBLIGHT_EFFECT_CHRISTMAS_STEP #ifndef RGBLIGHT_EFFECT_CHRISTMAS_STEP
# define RGBLIGHT_EFFECT_CHRISTMAS_STEP 2 # define RGBLIGHT_EFFECT_CHRISTMAS_STEP 2
# endif #endif
# ifndef RGBLIGHT_EFFECT_TWINKLE_LIFE #ifndef RGBLIGHT_EFFECT_TWINKLE_LIFE
# define RGBLIGHT_EFFECT_TWINKLE_LIFE 200 # define RGBLIGHT_EFFECT_TWINKLE_LIFE 200
# endif #endif
# ifndef RGBLIGHT_EFFECT_TWINKLE_PROBABILITY #ifndef RGBLIGHT_EFFECT_TWINKLE_PROBABILITY
# define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 127 # define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 127
# endif #endif
# ifndef RGBLIGHT_HUE_STEP #ifndef RGBLIGHT_HUE_STEP
# define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_HUE_STEP 8
# endif #endif
# ifndef RGBLIGHT_SAT_STEP #ifndef RGBLIGHT_SAT_STEP
# define RGBLIGHT_SAT_STEP 17 # define RGBLIGHT_SAT_STEP 17
# endif #endif
# ifndef RGBLIGHT_VAL_STEP #ifndef RGBLIGHT_VAL_STEP
# define RGBLIGHT_VAL_STEP 17 # define RGBLIGHT_VAL_STEP 17
# endif #endif
# ifndef RGBLIGHT_LIMIT_VAL #ifndef RGBLIGHT_LIMIT_VAL
# define RGBLIGHT_LIMIT_VAL 255 # define RGBLIGHT_LIMIT_VAL 255
# endif #endif
# include <stdint.h> #include <stdint.h>
# include <stdbool.h> #include <stdbool.h>
# include "eeconfig.h" #include "eeconfig.h"
# include "ws2812.h" #include "ws2812.h"
# include "color.h" #include "color.h"
# include "rgblight_list.h" #include "rgblight_list.h"
# if defined(__AVR__) #if defined(__AVR__)
# include <avr/pgmspace.h> # include <avr/pgmspace.h>
# endif #endif
# ifdef RGBLIGHT_LAYERS #ifdef RGBLIGHT_LAYERS
typedef struct { typedef struct {
uint8_t index; // The first LED to light uint8_t index; // The first LED to light
uint8_t count; // The number of LEDs to light uint8_t count; // The number of LEDs to light
@ -190,27 +188,27 @@ typedef struct {
uint8_t val; uint8_t val;
} rgblight_segment_t; } rgblight_segment_t;
# define RGBLIGHT_END_SEGMENT_INDEX (255) # define RGBLIGHT_END_SEGMENT_INDEX (255)
# define RGBLIGHT_END_SEGMENTS \ # define RGBLIGHT_END_SEGMENTS \
{ RGBLIGHT_END_SEGMENT_INDEX, 0, 0, 0 } { RGBLIGHT_END_SEGMENT_INDEX, 0, 0, 0 }
# ifndef RGBLIGHT_MAX_LAYERS # ifndef RGBLIGHT_MAX_LAYERS
# define RGBLIGHT_MAX_LAYERS 8 # define RGBLIGHT_MAX_LAYERS 8
# endif # endif
# if RGBLIGHT_MAX_LAYERS <= 0 # if RGBLIGHT_MAX_LAYERS <= 0
# error invalid RGBLIGHT_MAX_LAYERS value (must be >= 1) # error invalid RGBLIGHT_MAX_LAYERS value (must be >= 1)
# elif RGBLIGHT_MAX_LAYERS <= 8 # elif RGBLIGHT_MAX_LAYERS <= 8
typedef uint8_t rgblight_layer_mask_t; typedef uint8_t rgblight_layer_mask_t;
# elif RGBLIGHT_MAX_LAYERS <= 16 # elif RGBLIGHT_MAX_LAYERS <= 16
typedef uint16_t rgblight_layer_mask_t; typedef uint16_t rgblight_layer_mask_t;
# elif RGBLIGHT_MAX_LAYERS <= 32 # elif RGBLIGHT_MAX_LAYERS <= 32
typedef uint32_t rgblight_layer_mask_t; typedef uint32_t rgblight_layer_mask_t;
# else # else
# error invalid RGBLIGHT_MAX_LAYERS value (must be <= 32) # error invalid RGBLIGHT_MAX_LAYERS value (must be <= 32)
# endif # endif
# define RGBLIGHT_LAYER_SEGMENTS(...) \ # define RGBLIGHT_LAYER_SEGMENTS(...) \
{ __VA_ARGS__, RGBLIGHT_END_SEGMENTS } { __VA_ARGS__, RGBLIGHT_END_SEGMENTS }
# define RGBLIGHT_LAYERS_LIST(...) \ # define RGBLIGHT_LAYERS_LIST(...) \
{ __VA_ARGS__, NULL } { __VA_ARGS__, NULL }
// Get/set enabled rgblight layers // Get/set enabled rgblight layers
void rgblight_set_layer_state(uint8_t layer, bool enabled); void rgblight_set_layer_state(uint8_t layer, bool enabled);
@ -219,14 +217,14 @@ bool rgblight_get_layer_state(uint8_t layer);
// Point this to an array of rgblight_segment_t arrays in keyboard_post_init_user to use rgblight layers // Point this to an array of rgblight_segment_t arrays in keyboard_post_init_user to use rgblight layers
extern const rgblight_segment_t *const *rgblight_layers; extern const rgblight_segment_t *const *rgblight_layers;
# ifdef RGBLIGHT_LAYER_BLINK # ifdef RGBLIGHT_LAYER_BLINK
# define RGBLIGHT_USE_TIMER # define RGBLIGHT_USE_TIMER
void rgblight_blink_layer(uint8_t layer, uint16_t duration_ms); void rgblight_blink_layer(uint8_t layer, uint16_t duration_ms);
void rgblight_blink_layer_repeat(uint8_t layer, uint16_t duration_ms, uint8_t times); void rgblight_blink_layer_repeat(uint8_t layer, uint16_t duration_ms, uint8_t times);
# endif
# endif # endif
#endif
extern LED_TYPE led[RGBLED_NUM]; extern LED_TYPE led[RGBLED_NUM];
extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM; extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM;
@ -254,12 +252,12 @@ typedef union {
typedef struct _rgblight_status_t { typedef struct _rgblight_status_t {
uint8_t base_mode; uint8_t base_mode;
bool timer_enabled; bool timer_enabled;
# ifdef RGBLIGHT_SPLIT #ifdef RGBLIGHT_SPLIT
uint8_t change_flags; uint8_t change_flags;
# endif #endif
# ifdef RGBLIGHT_LAYERS #ifdef RGBLIGHT_LAYERS
rgblight_layer_mask_t enabled_layer_mask; rgblight_layer_mask_t enabled_layer_mask;
# endif #endif
} rgblight_status_t; } rgblight_status_t;
/* /*
@ -295,12 +293,12 @@ void rgblight_setrgb_range(uint8_t r, uint8_t g, uint8_t b, uint8_t start, uint8
void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end); void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end);
void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b); void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b);
# ifndef RGBLIGHT_SPLIT #ifndef RGBLIGHT_SPLIT
void rgblight_setrgb_master(uint8_t r, uint8_t g, uint8_t b); void rgblight_setrgb_master(uint8_t r, uint8_t g, uint8_t b);
void rgblight_setrgb_slave(uint8_t r, uint8_t g, uint8_t b); void rgblight_setrgb_slave(uint8_t r, uint8_t g, uint8_t b);
void rgblight_sethsv_master(uint8_t hue, uint8_t sat, uint8_t val); void rgblight_sethsv_master(uint8_t hue, uint8_t sat, uint8_t val);
void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val); void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val);
# endif #endif
/* effect mode change */ /* effect mode change */
void rgblight_mode(uint8_t mode); void rgblight_mode(uint8_t mode);
@ -374,29 +372,29 @@ void rgb_matrix_decrease(void);
void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom); void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom);
void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom); void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom);
# define EZ_RGB(val) rgblight_show_solid_color((val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF) #define EZ_RGB(val) rgblight_show_solid_color((val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF)
void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b); void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b);
# ifdef RGBLIGHT_USE_TIMER #ifdef RGBLIGHT_USE_TIMER
void rgblight_task(void); void rgblight_task(void);
void rgblight_timer_init(void); void rgblight_timer_init(void);
void rgblight_timer_enable(void); void rgblight_timer_enable(void);
void rgblight_timer_disable(void); void rgblight_timer_disable(void);
void rgblight_timer_toggle(void); void rgblight_timer_toggle(void);
# else #else
# define rgblight_task() # define rgblight_task()
# define rgblight_timer_init() # define rgblight_timer_init()
# define rgblight_timer_enable() # define rgblight_timer_enable()
# define rgblight_timer_disable() # define rgblight_timer_disable()
# define rgblight_timer_toggle() # define rgblight_timer_toggle()
# endif #endif
# ifdef RGBLIGHT_SPLIT #ifdef RGBLIGHT_SPLIT
# define RGBLIGHT_STATUS_CHANGE_MODE (1 << 0) # define RGBLIGHT_STATUS_CHANGE_MODE (1 << 0)
# define RGBLIGHT_STATUS_CHANGE_HSVS (1 << 1) # define RGBLIGHT_STATUS_CHANGE_HSVS (1 << 1)
# define RGBLIGHT_STATUS_CHANGE_TIMER (1 << 2) # define RGBLIGHT_STATUS_CHANGE_TIMER (1 << 2)
# define RGBLIGHT_STATUS_ANIMATION_TICK (1 << 3) # define RGBLIGHT_STATUS_ANIMATION_TICK (1 << 3)
# define RGBLIGHT_STATUS_CHANGE_LAYERS (1 << 4) # define RGBLIGHT_STATUS_CHANGE_LAYERS (1 << 4)
typedef struct _rgblight_syncinfo_t { typedef struct _rgblight_syncinfo_t {
rgblight_config_t config; rgblight_config_t config;
@ -409,9 +407,9 @@ void rgblight_clear_change_flags(void);
void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo); void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo);
/* for split keyboard slave side */ /* for split keyboard slave side */
void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom); void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom);
# endif #endif
# ifdef RGBLIGHT_USE_TIMER #ifdef RGBLIGHT_USE_TIMER
typedef struct _animation_status_t { typedef struct _animation_status_t {
uint16_t last_timer; uint16_t last_timer;
@ -437,6 +435,4 @@ void rgblight_effect_rgbtest(animation_status_t *anim);
void rgblight_effect_alternating(animation_status_t *anim); void rgblight_effect_alternating(animation_status_t *anim);
void rgblight_effect_twinkle(animation_status_t *anim); void rgblight_effect_twinkle(animation_status_t *anim);
# endif #endif
#endif // #ifndef RGBLIGHT_H_DUMMY_DEFINE