Updated rgb_led struct field modifier to flags (#5619)

Updated effects to test led flags
Updated massdrop to use new flags field for led toggle
This commit is contained in:
XScorpion2 2019-04-30 00:18:50 +02:00 committed by MechMerlin
parent 1d784f0f95
commit a7113c8ed0
57 changed files with 1164 additions and 1019 deletions

View file

@ -162,28 +162,11 @@ void rgb_matrix_update_pwm_buffers(void) {
}
void rgb_matrix_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ) {
#ifdef RGB_MATRIX_EXTRA_TOG
const bool is_key = g_rgb_leds[index].matrix_co.raw != 0xff;
if (
(rgb_matrix_config.enable == RGB_ZONE_KEYS && !is_key) ||
(rgb_matrix_config.enable == RGB_ZONE_UNDER && is_key)
) {
rgb_matrix_driver.set_color(index, 0, 0, 0);
return;
}
#endif
rgb_matrix_driver.set_color(index, red, green, blue);
}
void rgb_matrix_set_color_all( uint8_t red, uint8_t green, uint8_t blue ) {
#ifdef RGB_MATRIX_EXTRA_TOG
for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
rgb_matrix_set_color(i, red, green, blue);
}
#else
rgb_matrix_driver.set_color_all(red, green, blue);
#endif
}
bool process_rgb_matrix(uint16_t keycode, keyrecord_t *record) {
@ -262,7 +245,7 @@ static bool rgb_matrix_none(effect_params_t* params) {
static uint8_t rgb_last_enable = UINT8_MAX;
static uint8_t rgb_last_effect = UINT8_MAX;
static effect_params_t rgb_effect_params = { 0, 0 };
static effect_params_t rgb_effect_params = { 0, 0xFF };
static rgb_task_states rgb_task_state = SYNCING;
static void rgb_task_timers(void) {
@ -575,29 +558,31 @@ void rgb_matrix_set_suspend_state(bool state) {
}
void rgb_matrix_toggle(void) {
rgb_matrix_config.enable++;
if (!rgb_matrix_config.enable) {
rgb_task_state = STARTING;
}
rgb_matrix_config.enable ^= 1;
rgb_task_state = STARTING;
eeconfig_update_rgb_matrix(rgb_matrix_config.raw);
}
void rgb_matrix_enable(void) {
rgb_matrix_config.enable = 1;
rgb_matrix_enable_noeeprom();
eeconfig_update_rgb_matrix(rgb_matrix_config.raw);
}
void rgb_matrix_enable_noeeprom(void) {
rgb_matrix_config.enable = 1;
if (!rgb_matrix_config.enable)
rgb_task_state = STARTING;
rgb_matrix_config.enable = 1;
}
void rgb_matrix_disable(void) {
rgb_matrix_config.enable = 0;
rgb_matrix_disable_noeeprom();
eeconfig_update_rgb_matrix(rgb_matrix_config.raw);
}
void rgb_matrix_disable_noeeprom(void) {
rgb_matrix_config.enable = 0;
if (rgb_matrix_config.enable)
rgb_task_state = STARTING;
rgb_matrix_config.enable = 0;
}
void rgb_matrix_step(void) {
@ -658,6 +643,14 @@ void rgb_matrix_decrease_speed(void) {
eeconfig_update_rgb_matrix(rgb_matrix_config.raw);//EECONFIG needs to be increased to support this
}
led_flags_t rgb_matrix_get_flags(void) {
return rgb_effect_params.flags;
}
void rgb_matrix_set_flags(led_flags_t flags) {
rgb_effect_params.flags = flags;
}
void rgb_matrix_mode(uint8_t mode) {
rgb_matrix_config.mode = mode;
rgb_task_state = STARTING;