forked from mirrors/qmk_userspace
		
	Add NO_ACTION_OVERLAY config option
This commit is contained in:
		
					parent
					
						
							
								1687041267
							
						
					
				
			
			
				commit
				
					
						b057511f45
					
				
			
		
					 4 changed files with 23 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -517,6 +517,7 @@ static void process_action(keyrecord_t *record)
 | 
			
		|||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
#ifndef NO_ACTION_OVERLAY
 | 
			
		||||
        case ACT_OVERLAY:
 | 
			
		||||
            switch (action.layer.code) {
 | 
			
		||||
                // Overlay Invert bit4
 | 
			
		||||
| 
						 | 
				
			
			@ -670,6 +671,7 @@ static void process_action(keyrecord_t *record)
 | 
			
		|||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
        /* Extentions */
 | 
			
		||||
        case ACT_MACRO:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -98,6 +98,7 @@ void keymap_debug(void)
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef NO_ACTION_OVERLAY
 | 
			
		||||
/* 
 | 
			
		||||
 * Overlay Layer (16-31 = 0-15|0x10)
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -169,12 +170,14 @@ void overlay_debug(void)
 | 
			
		|||
{
 | 
			
		||||
    debug_hex16(overlay_stat); debug("("); debug_dec(overlay_get_layer()); debug(")");
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
action_t layer_switch_get_action(key_t key)
 | 
			
		||||
{
 | 
			
		||||
    action_t action;
 | 
			
		||||
    action.code = ACTION_TRANSPARENT;
 | 
			
		||||
 | 
			
		||||
#ifndef NO_ACTION_OVERLAY
 | 
			
		||||
    /* overlay: top layer first */
 | 
			
		||||
    for (int8_t i = 15; i >= 0; i--) {
 | 
			
		||||
        if (overlay_stat & (1<<i)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -184,6 +187,7 @@ action_t layer_switch_get_action(key_t key)
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    /* keymap: top layer first */
 | 
			
		||||
    for (int8_t i = 15; i >= 0; i--) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -57,6 +57,7 @@ void keymap_debug(void);
 | 
			
		|||
/*
 | 
			
		||||
 * Overlay Layer
 | 
			
		||||
 */
 | 
			
		||||
#ifndef NO_ACTION_OVERLAY
 | 
			
		||||
extern uint16_t overlay_stat;
 | 
			
		||||
/* return current active layer */
 | 
			
		||||
uint8_t overlay_get_layer(void);
 | 
			
		||||
| 
						 | 
				
			
			@ -71,6 +72,20 @@ void overlay_or(uint16_t stat);
 | 
			
		|||
void overlay_and(uint16_t stat);
 | 
			
		||||
void overlay_xor(uint16_t stat);
 | 
			
		||||
void overlay_debug(void);
 | 
			
		||||
#else
 | 
			
		||||
#define overlay_stat            0
 | 
			
		||||
#define overlay_get_layer()
 | 
			
		||||
#define overlay_clear()
 | 
			
		||||
#define overlay_set(stat)
 | 
			
		||||
#define overlay_move(layer)
 | 
			
		||||
#define overlay_on(layer)
 | 
			
		||||
#define overlay_off(layer)
 | 
			
		||||
#define overlay_invert(layer)
 | 
			
		||||
#define overlay_or(stat)
 | 
			
		||||
#define overlay_and(stat)
 | 
			
		||||
#define overlay_xor(stat)
 | 
			
		||||
#define overlay_debug()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,8 +58,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
 | 
			
		||||
/* disable debug print */
 | 
			
		||||
//#define NO_DEBUG
 | 
			
		||||
 | 
			
		||||
/* disable print */
 | 
			
		||||
//#define NO_PRINT
 | 
			
		||||
 | 
			
		||||
#define NO_ACTION_OVERLAY
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue