Skip to content

Commit

Permalink
Add layout change callbacks to VIA (#16087)
Browse files Browse the repository at this point in the history
* Add layout change callbacks to VIA

* Update worklouder example
  • Loading branch information
drashna committed Feb 6, 2022
1 parent 3b60e71 commit 9124f5d
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 7 deletions.
14 changes: 7 additions & 7 deletions keyboards/work_louder/work_board/work_board.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,15 +100,15 @@ led_config_t g_led_config = { {
} };
// clang-format on

# ifdef VIA_ENABLE
bool via_layout_2u = false;

void via_set_layout_options_kb(uint32_t value) { via_layout_2u = (bool)value; }
# endif // VIA_ENABLE

__attribute__((weak)) void rgb_matrix_indicators_user(void) {
# ifdef VIA_ENABLE
static bool layout_2u = false;
static uint16_t timer = 0;
if (timer_elapsed(timer) > 500) {
timer = timer_read();
layout_2u = (bool)via_get_layout_options();
}
if (layout_2u) {
if (via_layout_2u) {
rgb_matrix_set_color(5, 0, 0, 0);
rgb_matrix_set_color(7, 0, 0, 0);
} else {
Expand Down
4 changes: 4 additions & 0 deletions quantum/via.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ void via_init(void) {
// Let keyboard level test EEPROM valid state,
// but not set it valid, it is done here.
via_init_kb();
via_set_layout_options_kb(via_get_layout_options());

// If the EEPROM has the magic, the data is good.
// OK to load from EEPROM.
Expand Down Expand Up @@ -131,7 +132,10 @@ uint32_t via_get_layout_options(void) {
return value;
}

__attribute__((weak)) void via_set_layout_options_kb(uint32_t value) {}

void via_set_layout_options(uint32_t value) {
via_set_layout_options_kb(value);
// Start at the least significant byte
void *target = (void *)(VIA_EEPROM_LAYOUT_OPTIONS_ADDR + VIA_EEPROM_LAYOUT_OPTIONS_SIZE - 1);
for (uint8_t i = 0; i < VIA_EEPROM_LAYOUT_OPTIONS_SIZE; i++) {
Expand Down
1 change: 1 addition & 0 deletions quantum/via.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ void via_init(void);
// Used by VIA to store and retrieve the layout options.
uint32_t via_get_layout_options(void);
void via_set_layout_options(uint32_t value);
void via_set_layout_options_kb(uint32_t value);

// Called by QMK core to process VIA-specific keycodes.
bool process_record_via(uint16_t keycode, keyrecord_t *record);

0 comments on commit 9124f5d

Please sign in to comment.