@ -13,14 +13,14 @@
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					/** \brief Default Layer State
  
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					uint32 _t default_layer_state  =  0 ;  
			
		
	
		
			
				
					layer_state _t default_layer_state  =  0 ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					/** \brief Default Layer State Set At user Level
  
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Run  user  code  on  default  layer  state  change 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					__attribute__ ( ( weak ) )  
			
		
	
		
			
				
					uint32_t default_layer_state_set_user ( uint32  _t state )  {  
			
		
	
		
			
				
					layer_state_t default_layer_state_set_user ( layer_state  _t state )  {  
			
		
	
		
			
				
					  return  state ; 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -29,7 +29,7 @@ uint32_t default_layer_state_set_user(uint32_t state) {
 
			
		
	
		
			
				
					 *   Run  keyboard  code  on  default  layer  state  change 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					__attribute__ ( ( weak ) )  
			
		
	
		
			
				
					uint32_t default_layer_state_set_kb ( uint32  _t state )  {  
			
		
	
		
			
				
					layer_state_t default_layer_state_set_kb ( layer_state  _t state )  {  
			
		
	
		
			
				
					  return  default_layer_state_set_user ( state ) ; 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -37,7 +37,7 @@ uint32_t default_layer_state_set_kb(uint32_t state) {
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Static  function  to  set  the  default  layer  state ,  prints  debug  info  and  clears  keys 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					static  void  default_layer_state_set ( uint32 _t state )  {  
			
		
	
		
			
				
					static  void  default_layer_state_set ( layer_state _t state )  {  
			
		
	
		
			
				
					  state  =  default_layer_state_set_kb ( state ) ; 
 
			
		
	
		
			
				
					  debug ( " default_layer_state:  " ) ; 
 
			
		
	
		
			
				
					  default_layer_debug ( ) ;  debug ( "  to  " ) ; 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -62,7 +62,7 @@ void default_layer_debug(void) {
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Sets  the  default  layer  state . 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					void  default_layer_set ( uint32 _t state )  {  
			
		
	
		
			
				
					void  default_layer_set ( layer_state _t state )  {  
			
		
	
		
			
				
					  default_layer_state_set ( state ) ; 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -71,21 +71,21 @@ void default_layer_set(uint32_t state) {
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Turns  on  the  default  layer  based  on  matching  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					void  default_layer_or ( uint32 _t state )  {  
			
		
	
		
			
				
					void  default_layer_or ( layer_state _t state )  {  
			
		
	
		
			
				
					  default_layer_state_set ( default_layer_state  |  state ) ; 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					/** \brief Default Layer And
  
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Turns  on  default  layer  based  on  matching  enabled  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					void  default_layer_and ( uint32 _t state )  {  
			
		
	
		
			
				
					void  default_layer_and ( layer_state _t state )  {  
			
		
	
		
			
				
					  default_layer_state_set ( default_layer_state  &  state ) ; 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					/** \brief Default Layer Xor
  
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Turns  on  default  layer  based  on  non - matching  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					void  default_layer_xor ( uint32 _t state )  {  
			
		
	
		
			
				
					void  default_layer_xor ( layer_state _t state )  {  
			
		
	
		
			
				
					  default_layer_state_set ( default_layer_state  ^  state ) ; 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					# endif  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -94,14 +94,14 @@ void default_layer_xor(uint32_t state) {
 
			
		
	
		
			
				
					# ifndef NO_ACTION_LAYER  
			
		
	
		
			
				
					/** \brief Keymap Layer State
  
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					uint32 _t layer_state  =  0 ;  
			
		
	
		
			
				
					layer_state _t layer_state  =  0 ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					/** \brief Layer state set user
  
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Runs  user  code  on  layer  state  change 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					__attribute__ ( ( weak ) )  
			
		
	
		
			
				
					uint32_t layer_state_set_user ( uint32  _t state )  {  
			
		
	
		
			
				
					layer_state_t layer_state_set_user ( layer_state  _t state )  {  
			
		
	
		
			
				
					  return  state ; 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -110,7 +110,7 @@ uint32_t layer_state_set_user(uint32_t state) {
 
			
		
	
		
			
				
					 *  Runs  keyboard  code  on  layer  state  change 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					__attribute__ ( ( weak ) )  
			
		
	
		
			
				
					uint32_t layer_state_set_kb ( uint32  _t state )  {  
			
		
	
		
			
				
					layer_state_t layer_state_set_kb ( layer_state  _t state )  {  
			
		
	
		
			
				
					  return  layer_state_set_user ( state ) ; 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -118,7 +118,7 @@ uint32_t layer_state_set_kb(uint32_t state) {
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Sets  the  layer  to  match  the  specifed  state  ( a  bitmask ) 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					void  layer_state_set ( uint32 _t state )  {  
			
		
	
		
			
				
					void  layer_state_set ( layer_state _t state )  {  
			
		
	
		
			
				
					  state  =  layer_state_set_kb ( state ) ; 
 
			
		
	
		
			
				
					  dprint ( " layer_state:  " ) ; 
 
			
		
	
		
			
				
					  layer_debug ( ) ;  dprint ( "  to  " ) ; 
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -151,7 +151,7 @@ bool layer_state_is(uint8_t layer) {
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Used  for  comparing  layers  { mostly  used  for  unit  testing } 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					bool  layer_state_cmp ( uint32 _t cmp_layer_state ,  uint8_t  layer )  {  
			
		
	
		
			
				
					bool  layer_state_cmp ( layer_state _t cmp_layer_state ,  uint8_t  layer )  {  
			
		
	
		
			
				
					  if  ( ! cmp_layer_state )  {  return  layer  = =  0 ;  } 
 
			
		
	
		
			
				
					  return  ( cmp_layer_state  &  ( 1UL < < layer ) )  ! =  0 ; 
 
			
		
	
		
			
				
					}  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -192,21 +192,21 @@ void layer_invert(uint8_t layer) {
 
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Turns  on  layers  based  on  matching  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					void  layer_or ( uint32 _t state )  {  
			
		
	
		
			
				
					void  layer_or ( layer_state _t state )  {  
			
		
	
		
			
				
					  layer_state_set ( layer_state  |  state ) ; 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					/** \brief Layer and
  
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Turns  on  layers  based  on  matching  enabled  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					void  layer_and ( uint32 _t state )  {  
			
		
	
		
			
				
					void  layer_and ( layer_state _t state )  {  
			
		
	
		
			
				
					  layer_state_set ( layer_state  &  state ) ; 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					/** \brief Layer xor
  
			
		
	
		
			
				
					 * 
 
			
		
	
		
			
				
					 *  Turns  on  layers  based  on  non - matching  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
			
				
					 */ 
 
			
		
	
		
			
				
					void  layer_xor ( uint32 _t state )  {  
			
		
	
		
			
				
					void  layer_xor ( layer_state _t state )  {  
			
		
	
		
			
				
					  layer_state_set ( layer_state  ^  state ) ; 
 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -301,9 +301,9 @@ uint8_t layer_switch_get_layer(keypos_t key) {
 
			
		
	
		
			
				
					  action_t  action ; 
 
			
		
	
		
			
				
					  action . code  =  ACTION_TRANSPARENT ; 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  uint32 _t layers  =  layer_state  |  default_layer_state ; 
 
			
		
	
		
			
				
					  layer_state _t layers  =  layer_state  |  default_layer_state ; 
 
			
		
	
		
			
				
					  /* check top layer first */ 
 
			
		
	
		
			
				
					  for  ( int8_t  i  =  3 1;  i  > =  0 ;  i - - )  { 
 
			
		
	
		
			
				
					  for  ( int8_t  i  =  sizeof ( layer_state_t ) - ;  i  > =  0 ;  i - - )  { 
 
			
		
	
		
			
				
					    if  ( layers  &  ( 1UL  < <  i ) )  { 
 
			
		
	
		
			
				
					      action  =  action_for_key ( i ,  key ) ; 
 
			
		
	
		
			
				
					      if  ( action . code  ! =  ACTION_TRANSPARENT )  {