@@ -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 | |||