~ruther/qmk_firmware

dbcac865b9faef2286ca2b0195ea08cf550d83ae — tmk 12 years ago ecb7550
Add NO_ACTION_KEYMAP config option
4 files changed, 22 insertions(+), 0 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
@@ 369,6 369,7 @@ static void process_action(keyrecord_t *record)
            break;
#endif

#ifndef NO_ACTION_KEYMAP
        case ACT_KEYMAP:
            switch (action.layer.code) {
                /* Keymap clear */


@@ 530,6 531,7 @@ static void process_action(keyrecord_t *record)
                    break;
            }
            break;
#endif

#ifndef NO_ACTION_OVERLAY
        case ACT_OVERLAY:

M common/layer_switch.c => common/layer_switch.c +4 -0
@@ 24,6 24,7 @@ void default_layer_set(uint8_t layer)
}


#ifndef NO_ACTION_KEYMAP
/* 
 * Keymap Layer (0-15)
 */


@@ 95,6 96,7 @@ void keymap_debug(void)
{
    debug_hex16(keymap_stat); debug("("); debug_dec(keymap_get_layer()); debug(")");
}
#endif





@@ 189,6 191,7 @@ action_t layer_switch_get_action(key_t key)
    }
#endif

#ifndef NO_ACTION_KEYMAP
    /* keymap: top layer first */
    for (int8_t i = 15; i >= 0; i--) {
        if (keymap_stat & (1<<i)) {


@@ 198,6 201,7 @@ action_t layer_switch_get_action(key_t key)
            }
        }
    }
#endif

    /* default layer */
    action = action_for_key(default_layer, key);

M common/layer_switch.h => common/layer_switch.h +15 -0
@@ 38,6 38,7 @@ void default_layer_set(uint8_t layer);
/*
 * Keymap Layer
 */
#ifndef NO_ACTION_KEYMAP
extern uint16_t keymap_stat;
/* return current active layer */
uint8_t keymap_get_layer(void);


@@ 52,6 53,20 @@ void keymap_or(uint16_t stat);
void keymap_and(uint16_t stat);
void keymap_xor(uint16_t stat);
void keymap_debug(void);
#else
#define keymap_stat             0
#define keymap_get_layer()
#define keymap_clear()
#define keymap_set(stat)
#define keymap_move(layer)
#define keymap_on(layer)
#define keymap_off(layer)
#define keymap_invert(layer)
#define keymap_or(stat)
#define keymap_and(stat)
#define keymap_xor(stat)
#define keymap_debug()
#endif


/*

M keyboard/gh60/config.h => keyboard/gh60/config.h +1 -0
@@ 61,6 61,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* disable print */
//#define NO_PRINT

#define NO_ACTION_KEYMAP
#define NO_ACTION_OVERLAY
#define NO_ACTION_TAPPING
#define NO_ACTION_MACRO