~ruther/qmk_firmware

b057511f45de020c43021f2991569a53c2b929c9 — tmk 12 years ago 1687041
Add NO_ACTION_OVERLAY config option
4 files changed, 23 insertions(+), 1 deletions(-)

M common/action.c
M common/layer_switch.c
M common/layer_switch.h
M keyboard/gh60/config.h
M common/action.c => common/action.c +2 -0
@@ 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:

M common/layer_switch.c => common/layer_switch.c +4 -0
@@ 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--) {

M common/layer_switch.h => common/layer_switch.h +15 -0
@@ 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




M keyboard/gh60/config.h => keyboard/gh60/config.h +2 -1
@@ 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