} | } | ||||
break; | break; | ||||
#ifndef NO_ACTION_OVERLAY | |||||
case ACT_OVERLAY: | case ACT_OVERLAY: | ||||
switch (action.layer.code) { | switch (action.layer.code) { | ||||
// Overlay Invert bit4 | // Overlay Invert bit4 | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
#endif | |||||
/* Extentions */ | /* Extentions */ | ||||
case ACT_MACRO: | case ACT_MACRO: |
#ifndef NO_ACTION_OVERLAY | |||||
/* | /* | ||||
* Overlay Layer (16-31 = 0-15|0x10) | * Overlay Layer (16-31 = 0-15|0x10) | ||||
*/ | */ | ||||
{ | { | ||||
debug_hex16(overlay_stat); debug("("); debug_dec(overlay_get_layer()); debug(")"); | debug_hex16(overlay_stat); debug("("); debug_dec(overlay_get_layer()); debug(")"); | ||||
} | } | ||||
#endif | |||||
action_t layer_switch_get_action(key_t key) | action_t layer_switch_get_action(key_t key) | ||||
{ | { | ||||
action_t action; | action_t action; | ||||
action.code = ACTION_TRANSPARENT; | action.code = ACTION_TRANSPARENT; | ||||
#ifndef NO_ACTION_OVERLAY | |||||
/* overlay: top layer first */ | /* overlay: top layer first */ | ||||
for (int8_t i = 15; i >= 0; i--) { | for (int8_t i = 15; i >= 0; i--) { | ||||
if (overlay_stat & (1<<i)) { | if (overlay_stat & (1<<i)) { | ||||
} | } | ||||
} | } | ||||
} | } | ||||
#endif | |||||
/* keymap: top layer first */ | /* keymap: top layer first */ | ||||
for (int8_t i = 15; i >= 0; i--) { | for (int8_t i = 15; i >= 0; i--) { |
/* | /* | ||||
* Overlay Layer | * Overlay Layer | ||||
*/ | */ | ||||
#ifndef NO_ACTION_OVERLAY | |||||
extern uint16_t overlay_stat; | extern uint16_t overlay_stat; | ||||
/* return current active layer */ | /* return current active layer */ | ||||
uint8_t overlay_get_layer(void); | uint8_t overlay_get_layer(void); | ||||
void overlay_and(uint16_t stat); | void overlay_and(uint16_t stat); | ||||
void overlay_xor(uint16_t stat); | void overlay_xor(uint16_t stat); | ||||
void overlay_debug(void); | 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 | |||||
/* disable debug print */ | /* disable debug print */ | ||||
//#define NO_DEBUG | //#define NO_DEBUG | ||||
/* disable print */ | /* disable print */ | ||||
//#define NO_PRINT | //#define NO_PRINT | ||||
#define NO_ACTION_OVERLAY | |||||
#endif | #endif |