Add LedDisplay_SetCurrentKeymapText() and use it when reinitializaing the LED display upon disconnect. This fixes the bug that shows FTY on the display upon I2C watchdog recoveries.
This commit is contained in:
@@ -18,7 +18,7 @@ void SwitchKeymap(uint8_t index)
|
|||||||
CurrentKeymapIndex = index;
|
CurrentKeymapIndex = index;
|
||||||
ValidatedUserConfigBuffer.offset = AllKeymaps[index].offset;
|
ValidatedUserConfigBuffer.offset = AllKeymaps[index].offset;
|
||||||
ParseKeymap(&ValidatedUserConfigBuffer, index, AllKeymapsCount, AllMacrosCount);
|
ParseKeymap(&ValidatedUserConfigBuffer, index, AllKeymapsCount, AllMacrosCount);
|
||||||
LedDisplay_SetText(AllKeymaps[index].abbreviationLen, AllKeymaps[index].abbreviation);
|
LedDisplay_SetCurrentKeymapText();
|
||||||
}
|
}
|
||||||
|
|
||||||
// The factory keymap is initialized before it gets overwritten by the default keymap of the EEPROM.
|
// The factory keymap is initialized before it gets overwritten by the default keymap of the EEPROM.
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#include "led_display.h"
|
#include "led_display.h"
|
||||||
#include "slave_drivers/is31fl3731_driver.h"
|
#include "slave_drivers/is31fl3731_driver.h"
|
||||||
#include "layer.h"
|
#include "layer.h"
|
||||||
|
#include "keymap.h"
|
||||||
|
|
||||||
static const uint16_t capitalLetterToSegmentSet[] = {
|
static const uint16_t capitalLetterToSegmentSet[] = {
|
||||||
0b0000000011110111,
|
0b0000000011110111,
|
||||||
@@ -78,6 +79,12 @@ 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(uint8_t layerId) {
|
void LedDisplay_SetLayer(uint8_t layerId) {
|
||||||
for (uint8_t i = 13; i <= 45; i += 16) {
|
for (uint8_t i = 13; i <= 45; i += 16) {
|
||||||
LedDriverValues[LedDriverId_Left][i] = 0;
|
LedDriverValues[LedDriverId_Left][i] = 0;
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
// Functions:
|
// Functions:
|
||||||
|
|
||||||
void LedDisplay_SetText(uint8_t length, const char* text);
|
void LedDisplay_SetText(uint8_t length, const char* text);
|
||||||
|
void LedDisplay_SetCurrentKeymapText(void);
|
||||||
void LedDisplay_SetLayer(uint8_t layerId);
|
void LedDisplay_SetLayer(uint8_t layerId);
|
||||||
void LedDisplay_SetIcon(led_display_icon_t icon, bool isEnabled);
|
void LedDisplay_SetIcon(led_display_icon_t icon, bool isEnabled);
|
||||||
|
|
||||||
|
|||||||
@@ -70,10 +70,9 @@ void LedSlaveDriver_Init(uint8_t ledDriverId) {
|
|||||||
currentLedDriverState->phase = LedDriverPhase_SetFunctionFrame;
|
currentLedDriverState->phase = LedDriverPhase_SetFunctionFrame;
|
||||||
currentLedDriverState->ledIndex = 0;
|
currentLedDriverState->ledIndex = 0;
|
||||||
memset(LedDriverValues[ledDriverId], LED_BRIGHTNESS_LEVEL, LED_DRIVER_LED_COUNT);
|
memset(LedDriverValues[ledDriverId], LED_BRIGHTNESS_LEVEL, LED_DRIVER_LED_COUNT);
|
||||||
LedDisplay_SetText(3, "FTY");
|
LedDisplay_SetCurrentKeymapText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t LedSlaveDriver_Update(uint8_t ledDriverId) {
|
status_t LedSlaveDriver_Update(uint8_t ledDriverId) {
|
||||||
status_t status = kStatus_Uhk_IdleSlave;
|
status_t status = kStatus_Uhk_IdleSlave;
|
||||||
uint8_t *ledValues = LedDriverValues[ledDriverId];
|
uint8_t *ledValues = LedDriverValues[ledDriverId];
|
||||||
|
|||||||
Reference in New Issue
Block a user