Add NO_ACTION_OVERLAY config option

This commit is contained in:
tmk 2013-03-20 00:26:01 +09:00
parent 1687041267
commit b057511f45
4 changed files with 23 additions and 1 deletions

View File

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

View File

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

View File

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

View File

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