[Core] Added add_oneshot_mods & del_oneshot_mods (#10549)
				
					
				
			* Added `add_oneshot_mods` & `del_oneshot_mods` Deleted undefined and unused prototypes: - void oneshot_enable(void) - void oneshot_disable(void) - void oneshot_toggle(void) Reordered the oneshot functions to follow the same order as other mod functions, that is to say : get, add, del, set, clear * Stricter conditions on add_oneshot_mods & del_oneshot_mods Prevent extending the one shot timer if the called add_oneshot_mods or del_oneshot_mods do not change anything to the current one shot mod state. Co-authored-by: David Kosorin <david@kosorin.net> Co-authored-by: David Kosorin <david@kosorin.net>
This commit is contained in:
		
							parent
							
								
									28d6b9d7be
								
							
						
					
					
						commit
						3dcb0463ad
					
				
					 2 changed files with 29 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -290,6 +290,32 @@ void set_macro_mods(uint8_t mods) { macro_mods = mods; }
 | 
			
		|||
void clear_macro_mods(void) { macro_mods = 0; }
 | 
			
		||||
 | 
			
		||||
#ifndef NO_ACTION_ONESHOT
 | 
			
		||||
/** \brief get oneshot mods
 | 
			
		||||
 *
 | 
			
		||||
 * FIXME: needs doc
 | 
			
		||||
 */
 | 
			
		||||
uint8_t get_oneshot_mods(void) { return oneshot_mods; }
 | 
			
		||||
 | 
			
		||||
void add_oneshot_mods(uint8_t mods) {
 | 
			
		||||
    if ((oneshot_mods & mods) != mods) {
 | 
			
		||||
#    if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
 | 
			
		||||
        oneshot_time = timer_read();
 | 
			
		||||
#    endif
 | 
			
		||||
        oneshot_mods |= mods;
 | 
			
		||||
        oneshot_mods_changed_kb(mods);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void del_oneshot_mods(uint8_t mods) {
 | 
			
		||||
    if (oneshot_mods & mods) {
 | 
			
		||||
        oneshot_mods &= ~mods;
 | 
			
		||||
#    if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
 | 
			
		||||
        oneshot_time = oneshot_mods ? timer_read() : 0;
 | 
			
		||||
#    endif
 | 
			
		||||
        oneshot_mods_changed_kb(oneshot_mods);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** \brief set oneshot mods
 | 
			
		||||
 *
 | 
			
		||||
 * FIXME: needs doc
 | 
			
		||||
| 
						 | 
				
			
			@ -316,11 +342,6 @@ void clear_oneshot_mods(void) {
 | 
			
		|||
        oneshot_mods_changed_kb(oneshot_mods);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
/** \brief get oneshot mods
 | 
			
		||||
 *
 | 
			
		||||
 * FIXME: needs doc
 | 
			
		||||
 */
 | 
			
		||||
uint8_t get_oneshot_mods(void) { return oneshot_mods; }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/** \brief Called when the one shot modifiers have been changed.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -57,12 +57,11 @@ void    set_macro_mods(uint8_t mods);
 | 
			
		|||
void    clear_macro_mods(void);
 | 
			
		||||
 | 
			
		||||
/* oneshot modifier */
 | 
			
		||||
void    set_oneshot_mods(uint8_t mods);
 | 
			
		||||
uint8_t get_oneshot_mods(void);
 | 
			
		||||
void    add_oneshot_mods(uint8_t mods);
 | 
			
		||||
void    del_oneshot_mods(uint8_t mods);
 | 
			
		||||
void    set_oneshot_mods(uint8_t mods);
 | 
			
		||||
void    clear_oneshot_mods(void);
 | 
			
		||||
void    oneshot_toggle(void);
 | 
			
		||||
void    oneshot_enable(void);
 | 
			
		||||
void    oneshot_disable(void);
 | 
			
		||||
bool    has_oneshot_mods_timed_out(void);
 | 
			
		||||
 | 
			
		||||
uint8_t get_oneshot_locked_mods(void);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue