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