Review fixes for layer lock feature (#24627)
This commit is contained in:
parent
65a8a5ff69
commit
968a611476
7 changed files with 35 additions and 114 deletions
|
@ -23,12 +23,18 @@ layer_state_t locked_layers = 0;
|
|||
# if defined(LAYER_LOCK_IDLE_TIMEOUT) && LAYER_LOCK_IDLE_TIMEOUT > 0
|
||||
uint32_t layer_lock_timer = 0;
|
||||
|
||||
void layer_lock_task(void) {
|
||||
void layer_lock_timeout_task(void) {
|
||||
if (locked_layers && timer_elapsed32(layer_lock_timer) > LAYER_LOCK_IDLE_TIMEOUT) {
|
||||
layer_lock_all_off();
|
||||
layer_lock_timer = timer_read32();
|
||||
}
|
||||
}
|
||||
void layer_lock_activity_trigger(void) {
|
||||
layer_lock_timer = timer_read32();
|
||||
}
|
||||
# else
|
||||
void layer_lock_timeout_task(void) {}
|
||||
void layer_lock_activity_trigger(void) {}
|
||||
# endif // LAYER_LOCK_IDLE_TIMEOUT > 0
|
||||
|
||||
bool is_layer_locked(uint8_t layer) {
|
||||
|
@ -44,9 +50,7 @@ void layer_lock_invert(uint8_t layer) {
|
|||
}
|
||||
# endif // NO_ACTION_ONESHOT
|
||||
layer_on(layer);
|
||||
# if defined(LAYER_LOCK_IDLE_TIMEOUT) && LAYER_LOCK_IDLE_TIMEOUT > 0
|
||||
layer_lock_timer = timer_read32();
|
||||
# endif // LAYER_LOCK_IDLE_TIMEOUT > 0
|
||||
layer_lock_activity_trigger();
|
||||
} else { // Layer is being unlocked.
|
||||
layer_off(layer);
|
||||
}
|
||||
|
@ -72,10 +76,25 @@ void layer_lock_all_off(void) {
|
|||
layer_lock_set_kb(locked_layers);
|
||||
}
|
||||
|
||||
#else // NO_ACTION_LAYER
|
||||
bool is_layer_locked(uint8_t layer) {
|
||||
return false;
|
||||
}
|
||||
void layer_lock_on(uint8_t layer) {}
|
||||
void layer_lock_off(uint8_t layer) {}
|
||||
void layer_lock_all_off(void) {}
|
||||
void layer_lock_invert(uint8_t layer) {}
|
||||
void layer_lock_timeout_task(void) {}
|
||||
void layer_lock_activity_trigger(void) {}
|
||||
#endif // NO_ACTION_LAYER
|
||||
|
||||
__attribute__((weak)) bool layer_lock_set_kb(layer_state_t locked_layers) {
|
||||
return layer_lock_set_user(locked_layers);
|
||||
}
|
||||
__attribute__((weak)) bool layer_lock_set_user(layer_state_t locked_layers) {
|
||||
return true;
|
||||
}
|
||||
#endif // NO_ACTION_LAYER
|
||||
|
||||
void layer_lock_task(void) {
|
||||
layer_lock_timeout_task();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue