@ -99,7 +99,7 @@ enum RGBLIGHT_EFFECT_MODE {
# endif
# ifndef RGBLIGHT_EFFECT_KNIGHT_LED_NUM
# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM RGBLED_NUM
# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM (effect_num_leds)
# endif
# ifndef RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL
@ -170,61 +170,79 @@ typedef struct _rgblight_status_t {
# endif
} rgblight_status_t ;
# ifdef RGBLIGHT_SPLIT
# define RGBLIGHT_STATUS_CHANGE_MODE (1<<0)
# define RGBLIGHT_STATUS_CHANGE_HSVS (1<<1)
# define RGBLIGHT_STATUS_CHANGE_TIMER (1<<2)
# define RGBLIGHT_STATUS_ANIMATION_TICK (1<<3)
/* === Utility Functions ===*/
void sethsv ( uint8_t hue , uint8_t sat , uint8_t val , LED_TYPE * led1 ) ;
void sethsv_raw ( uint8_t hue , uint8_t sat , uint8_t val , LED_TYPE * led1 ) ; // without RGBLIGHT_LIMIT_VAL check
void setrgb ( uint8_t r , uint8_t g , uint8_t b , LED_TYPE * led1 ) ;
typedef struct _rgblight_syncinfo_t {
rgblight_config_t config ;
rgblight_status_t status ;
} rgblight_syncinfo_t ;
/* === Low level Functions === */
void rgblight_set ( void ) ;
void rgblight_set_clipping_range ( uint8_t start_pos , uint8_t num_leds ) ;
/* for split keyboard master side */
uint8_t rgblight_get_change_flags ( void ) ;
void rgblight_clear_change_flags ( void ) ;
void rgblight_get_syncinfo ( rgblight_syncinfo_t * syncinfo ) ;
/* for split keyboard slave side */
void rgblight_update_sync ( rgblight_syncinfo_t * syncinfo , bool write_to_eeprom ) ;
/* === Effects and Animations Functions === */
/* effect range setting */
void rgblight_set_effect_range ( uint8_t start_pos , uint8_t num_leds ) ;
/* direct operation */
void rgblight_setrgb_at ( uint8_t r , uint8_t g , uint8_t b , uint8_t index ) ;
void rgblight_sethsv_at ( uint8_t hue , uint8_t sat , uint8_t val , uint8_t index ) ;
void rgblight_setrgb_range ( uint8_t r , uint8_t g , uint8_t b , 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 ) ;
# ifndef RGBLIGHT_SPLIT
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_sethsv_master ( uint8_t hue , uint8_t sat , uint8_t val ) ;
void rgblight_sethsv_slave ( uint8_t hue , uint8_t sat , uint8_t val ) ;
# endif
void rgblight_init ( void ) ;
/* effect mode change */
void rgblight_mode ( uint8_t mode ) ;
void rgblight_mode_noeeprom ( uint8_t mode ) ;
void rgblight_increase ( void ) ;
void rgblight_decrease ( void ) ;
void rgblight_step ( void ) ;
void rgblight_step_noeeprom ( void ) ;
void rgblight_step_reverse ( void ) ;
void rgblight_step_reverse_noeeprom ( void ) ;
/* effects mode disable/enable */
void rgblight_toggle ( void ) ;
void rgblight_toggle_noeeprom ( void ) ;
void rgblight_enable ( void ) ;
void rgblight_enable_noeeprom ( void ) ;
void rgblight_disable ( void ) ;
void rgblight_step ( void ) ;
void rgblight_step_reverse ( void ) ;
uint8_t rgblight_get_mode ( void ) ;
void rgblight_mode ( uint8_t mode ) ;
void rgblight_set ( void ) ;
uint32_t rgblight_read_dword ( void ) ;
void rgblight_update_dword ( uint32_t dword ) ;
void rgblight_disable_noeeprom ( void ) ;
/* hue, sat, val change */
void rgblight_increase_hue ( void ) ;
void rgblight_increase_hue_noeeprom ( void ) ;
void rgblight_decrease_hue ( void ) ;
void rgblight_decrease_hue_noeeprom ( void ) ;
void rgblight_increase_sat ( void ) ;
void rgblight_increase_sat_noeeprom ( void ) ;
void rgblight_decrease_sat ( void ) ;
void rgblight_decrease_sat_noeeprom ( void ) ;
void rgblight_increase_val ( void ) ;
void rgblight_increase_val_noeeprom ( void ) ;
void rgblight_decrease_val ( void ) ;
void rgblight_decrease_val_noeeprom ( void ) ;
void rgblight_increase_speed ( void ) ;
void rgblight_decrease_speed ( void ) ;
void rgblight_sethsv ( uint8_t hue , uint8_t sat , uint8_t val ) ;
void rgblight_sethsv_noeeprom ( uint8_t hue , uint8_t sat , uint8_t val ) ;
/* query */
uint8_t rgblight_get_mode ( void ) ;
uint8_t rgblight_get_hue ( void ) ;
uint8_t rgblight_get_sat ( void ) ;
uint8_t rgblight_get_val ( void ) ;
void rgblight_setrgb ( uint8_t r , uint8_t g , uint8_t b ) ;
void rgblight_setrgb_at ( uint8_t r , uint8_t g , uint8_t b , uint8_t index ) ;
void rgblight_sethsv_at ( uint8_t hue , uint8_t sat , uint8_t val , uint8_t index ) ;
void rgblight_setrgb_range ( uint8_t r , uint8_t g , uint8_t b , 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_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_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_set_clipping_range ( uint8_t start_pos , uint8_t num_leds ) ;
/* === qmk_firmware (core)internal Functions === */
void rgblight_init ( void ) ;
uint32_t rgblight_read_dword ( void ) ;
void rgblight_update_dword ( uint32_t dword ) ;
uint32_t eeconfig_read_rgblight ( void ) ;
void eeconfig_update_rgblight ( uint32_t val ) ;
void eeconfig_update_rgblight_default ( void ) ;
@ -233,27 +251,9 @@ void eeconfig_debug_rgblight(void);
void rgb_matrix_increase ( void ) ;
void rgb_matrix_decrease ( void ) ;
void sethsv ( uint8_t hue , uint8_t sat , uint8_t val , LED_TYPE * led1 ) ;
void setrgb ( uint8_t r , uint8_t g , uint8_t b , LED_TYPE * led1 ) ;
void rgblight_sethsv_noeeprom ( uint8_t hue , uint8_t sat , uint8_t val ) ;
void rgblight_mode_noeeprom ( uint8_t mode ) ;
void rgblight_toggle_noeeprom ( void ) ;
void rgblight_enable_noeeprom ( void ) ;
void rgblight_disable_noeeprom ( void ) ;
void rgblight_step_noeeprom ( void ) ;
void rgblight_step_reverse_noeeprom ( void ) ;
void rgblight_increase_hue_noeeprom ( void ) ;
void rgblight_decrease_hue_noeeprom ( void ) ;
void rgblight_increase_sat_noeeprom ( void ) ;
void rgblight_decrease_sat_noeeprom ( void ) ;
void rgblight_increase_val_noeeprom ( void ) ;
void rgblight_decrease_val_noeeprom ( void ) ;
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 ) ;
# 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 ) ;
@ -264,6 +264,25 @@ void rgblight_timer_enable(void);
void rgblight_timer_disable ( void ) ;
void rgblight_timer_toggle ( void ) ;
# ifdef RGBLIGHT_SPLIT
# define RGBLIGHT_STATUS_CHANGE_MODE (1<<0)
# define RGBLIGHT_STATUS_CHANGE_HSVS (1<<1)
# define RGBLIGHT_STATUS_CHANGE_TIMER (1<<2)
# define RGBLIGHT_STATUS_ANIMATION_TICK (1<<3)
typedef struct _rgblight_syncinfo_t {
rgblight_config_t config ;
rgblight_status_t status ;
} rgblight_syncinfo_t ;
/* for split keyboard master side */
uint8_t rgblight_get_change_flags ( void ) ;
void rgblight_clear_change_flags ( void ) ;
void rgblight_get_syncinfo ( rgblight_syncinfo_t * syncinfo ) ;
/* for split keyboard slave side */
void rgblight_update_sync ( rgblight_syncinfo_t * syncinfo , bool write_to_eeprom ) ;
# endif
# ifdef RGBLIGHT_USE_TIMER
typedef struct _animation_status_t {