From: tmk Date: Tue, 29 Mar 2016 18:37:57 +0000 (+0900) Subject: core: action codes are action_t struct now X-Git-Url: https://git.friedersdorff.com/?a=commitdiff_plain;h=e5cb8469af8b5e94b3cdb0c1645ff4141ae496d5;p=max%2Ftmk_keyboard.git core: action codes are action_t struct now --- diff --git a/tmk_core/common/action_code.h b/tmk_core/common/action_code.h index b39c6441..8dad38b9 100644 --- a/tmk_core/common/action_code.h +++ b/tmk_core/common/action_code.h @@ -181,9 +181,9 @@ typedef union { /* action utility */ -#define ACTION_NO 0 -#define ACTION_TRANSPARENT 1 -#define ACTION(kind, param) ((kind)<<12 | (param)) +#define ACTION_NO { .code = 0 } +#define ACTION_TRANSPARENT { .code = 1 } +#define ACTION(kind, param) { .code = ((kind)<<12 | (param)) } /* diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c index 95909cc2..6b5a7fd2 100644 --- a/tmk_core/common/action_layer.c +++ b/tmk_core/common/action_layer.c @@ -117,7 +117,7 @@ void layer_debug(void) action_t layer_switch_get_action(keypos_t key) { - action_t action = { .code = ACTION_TRANSPARENT }; + action_t action = ACTION_TRANSPARENT; #ifndef NO_ACTION_LAYER uint32_t layers = layer_state | default_layer_state; @@ -125,7 +125,7 @@ action_t layer_switch_get_action(keypos_t key) for (int8_t i = 31; i >= 0; i--) { if (layers & (1UL<. /* Keymapping with 16bit action codes */ -extern const uint16_t actionmaps[][MATRIX_ROWS][MATRIX_COLS]; +extern const action_t actionmaps[][MATRIX_ROWS][MATRIX_COLS]; /* Modified key */ diff --git a/tmk_core/common/keymap.c b/tmk_core/common/keymap.c index 25161748..b37bade8 100644 --- a/tmk_core/common/keymap.c +++ b/tmk_core/common/keymap.c @@ -53,7 +53,7 @@ action_t action_for_key(uint8_t layer, keypos_t key) case KC_LALT: if (keymap_config.swap_lalt_lgui) { if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); + return keycode_to_action(KC_NO); } return keycode_to_action(KC_LGUI); } @@ -63,13 +63,13 @@ action_t action_for_key(uint8_t layer, keypos_t key) return keycode_to_action(KC_LALT); } if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); + return keycode_to_action(KC_NO); } return keycode_to_action(KC_LGUI); case KC_RALT: if (keymap_config.swap_ralt_rgui) { if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); + return keycode_to_action(KC_NO); } return keycode_to_action(KC_RGUI); } @@ -79,7 +79,7 @@ action_t action_for_key(uint8_t layer, keypos_t key) return keycode_to_action(KC_RALT); } if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); + return keycode_to_action(KC_NO); } return keycode_to_action(KC_RGUI); case KC_GRAVE: @@ -133,23 +133,22 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) /* translates keycode to action */ static action_t keycode_to_action(uint8_t keycode) { - action_t action = {}; switch (keycode) { case KC_A ... KC_EXSEL: case KC_LCTRL ... KC_RGUI: - action.code = ACTION_KEY(keycode); + return (action_t)ACTION_KEY(keycode); break; case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE: - action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode)); + return (action_t)ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode)); break; case KC_AUDIO_MUTE ... KC_WWW_FAVORITES: - action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode)); + return (action_t)ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode)); break; case KC_MS_UP ... KC_MS_ACCEL2: - action.code = ACTION_MOUSEKEY(keycode); + return (action_t)ACTION_MOUSEKEY(keycode); break; case KC_TRNS: - action.code = ACTION_TRANSPARENT; + return (action_t)ACTION_TRANSPARENT; break; case KC_BOOTLOADER: clear_keyboard(); @@ -157,10 +156,10 @@ static action_t keycode_to_action(uint8_t keycode) bootloader_jump(); // not return break; default: - action.code = ACTION_NO; + return (action_t)ACTION_NO; break; } - return action; + return (action_t)ACTION_NO; } @@ -181,21 +180,20 @@ uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key) __attribute__ ((weak)) action_t keymap_fn_to_action(uint8_t keycode) { - action_t action = { .code = ACTION_NO }; switch (keycode) { case KC_FN0 ... KC_FN31: { uint8_t layer = keymap_fn_layer(FN_INDEX(keycode)); uint8_t key = keymap_fn_keycode(FN_INDEX(keycode)); if (key) { - action.code = ACTION_LAYER_TAP_KEY(layer, key); + return (action_t)ACTION_LAYER_TAP_KEY(layer, key); } else { - action.code = ACTION_LAYER_MOMENTARY(layer); + return (action_t)ACTION_LAYER_MOMENTARY(layer); } } - return action; + return (action_t)ACTION_NO; default: - return action; + return (action_t)ACTION_NO; } } #endif