diff --git a/right/src/config_parser/parse_config.c b/right/src/config_parser/parse_config.c index 32f4af0..654f792 100644 --- a/right/src/config_parser/parse_config.c +++ b/right/src/config_parser/parse_config.c @@ -145,8 +145,7 @@ parser_error_t ParseConfig(config_buffer_t *buffer) AlphanumericSegmentsBrightness = alphanumericSegmentsBrightness; KeyBacklightBrightness = keyBacklightBrightness; - Slaves[SlaveId_LeftLedDriver].isConnected = false; - Slaves[SlaveId_RightLedDriver].isConnected = false; + LedSlaveDriver_UpdateLedValues(); // Update mouse key speeds diff --git a/right/src/keymap.c b/right/src/keymap.c index 065afcc..3584df0 100644 --- a/right/src/keymap.c +++ b/right/src/keymap.c @@ -23,7 +23,7 @@ void SwitchKeymapById(uint8_t index) CurrentKeymapIndex = index; ValidatedUserConfigBuffer.offset = AllKeymaps[index].offset; ParseKeymap(&ValidatedUserConfigBuffer, index, AllKeymapsCount, AllMacrosCount); - LedDisplay_SetCurrentKeymapText(); + LedDisplay_UpdateText(); } bool SwitchKeymapByAbbreviation(uint8_t length, char *abbrev) diff --git a/right/src/led_display.c b/right/src/led_display.c index 537b14d..7a7e878 100644 --- a/right/src/led_display.c +++ b/right/src/led_display.c @@ -85,12 +85,6 @@ void LedDisplay_SetText(uint8_t length, const char* text) } } -void LedDisplay_SetCurrentKeymapText(void) -{ - keymap_reference_t *currentKeymap = AllKeymaps + CurrentKeymapIndex; - LedDisplay_SetText(currentKeymap->abbreviationLen, currentKeymap->abbreviation); -} - void LedDisplay_SetLayer(layer_id_t layerId) { for (uint8_t i = 13; i <= 45; i += 16) { @@ -119,3 +113,15 @@ void LedDisplay_UpdateIcons(void) LedDisplay_SetIcon(i, ledIconStates[i]); } } + +void LedDisplay_UpdateText(void) +{ + keymap_reference_t *currentKeymap = AllKeymaps + CurrentKeymapIndex; + LedDisplay_SetText(currentKeymap->abbreviationLen, currentKeymap->abbreviation); +} + +void LedDisplay_UpdateAll(void) +{ + LedDisplay_UpdateIcons(); + LedDisplay_UpdateText(); +} diff --git a/right/src/led_display.h b/right/src/led_display.h index cce22b1..e0d8e53 100644 --- a/right/src/led_display.h +++ b/right/src/led_display.h @@ -24,10 +24,11 @@ // Functions: void LedDisplay_SetText(uint8_t length, const char* text); - void LedDisplay_SetCurrentKeymapText(void); void LedDisplay_SetLayer(layer_id_t layerId); bool LedDisplay_GetIcon(led_display_icon_t icon); void LedDisplay_SetIcon(led_display_icon_t icon, bool isEnabled); void LedDisplay_UpdateIcons(void); + void LedDisplay_UpdateText(void); + void LedDisplay_UpdateAll(void); #endif diff --git a/right/src/slave_drivers/is31fl3731_driver.c b/right/src/slave_drivers/is31fl3731_driver.c index 9d95dec..0f1bc16 100644 --- a/right/src/slave_drivers/is31fl3731_driver.c +++ b/right/src/slave_drivers/is31fl3731_driver.c @@ -62,6 +62,15 @@ static uint8_t setShutdownModeNormalBuffer[] = {LED_DRIVER_REGISTER_SHUTDOWN, SH static uint8_t setFrame1Buffer[] = {LED_DRIVER_REGISTER_FRAME, LED_DRIVER_FRAME_1}; static uint8_t updatePwmRegistersBuffer[PWM_REGISTER_BUFFER_LENGTH]; +void LedSlaveDriver_UpdateLedValues(void) +{ + for (uint8_t ledDriverId=0; ledDriverId<=LedDriverId_Last; ledDriverId++) { + memset(LedDriverValues[ledDriverId], KeyBacklightBrightness, LED_DRIVER_LED_COUNT); + } + + LedDisplay_UpdateAll(); +} + void LedSlaveDriver_Init(uint8_t ledDriverId) { if (ledDriverId == ISO_KEY_LED_DRIVER_ID && IS_ISO) { @@ -74,8 +83,7 @@ void LedSlaveDriver_Init(uint8_t ledDriverId) memset(LedDriverValues[ledDriverId], KeyBacklightBrightness, LED_DRIVER_LED_COUNT); if (ledDriverId == LedDriverId_Left) { - LedDisplay_UpdateIcons(); - LedDisplay_SetCurrentKeymapText(); + LedDisplay_UpdateAll(); } } diff --git a/right/src/slave_drivers/is31fl3731_driver.h b/right/src/slave_drivers/is31fl3731_driver.h index 8ae937a..f79fc13 100644 --- a/right/src/slave_drivers/is31fl3731_driver.h +++ b/right/src/slave_drivers/is31fl3731_driver.h @@ -23,6 +23,7 @@ typedef enum { LedDriverId_Right, LedDriverId_Left, + LedDriverId_Last = LedDriverId_Left, } led_driver_id_t; typedef enum { @@ -49,6 +50,7 @@ // Functions: + void LedSlaveDriver_UpdateLedValues(void); void LedSlaveDriver_Init(uint8_t ledDriverId); status_t LedSlaveDriver_Update(uint8_t ledDriverId);