From 406f03bb0ceeaf7fda7d04da2379c1f197b5cc6d Mon Sep 17 00:00:00 2001 From: fauxpark Date: Fri, 9 Aug 2019 07:15:34 +1000 Subject: Mask off TD() parameter properly (#6143) * Mask off TD() parameter properly * More parentheses --- quantum/process_keycode/process_tap_dance.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'quantum/process_keycode/process_tap_dance.h') diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index ca12f4746e..00d70cbc59 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -34,7 +34,7 @@ typedef struct bool finished; } qk_tap_dance_state_t; -#define TD(n) (QK_TAP_DANCE + n) +#define TD(n) (QK_TAP_DANCE | ((n) & 0xFF)) typedef void (*qk_tap_dance_user_fn_t) (qk_tap_dance_state_t *state, void *user_data); -- cgit v1.2.3 From b624f32f944acdc59dcb130674c09090c5c404cb Mon Sep 17 00:00:00 2001 From: skullY Date: Fri, 30 Aug 2019 11:19:03 -0700 Subject: clang-format changes --- quantum/process_keycode/process_tap_dance.h | 113 ++++++++++++---------------- 1 file changed, 49 insertions(+), 64 deletions(-) (limited to 'quantum/process_keycode/process_tap_dance.h') diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index 00d70cbc59..b2d0cb8297 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -18,75 +18,60 @@ #ifdef TAP_DANCE_ENABLE -#include -#include - -typedef struct -{ - uint8_t count; - uint8_t oneshot_mods; - uint8_t weak_mods; - uint16_t keycode; - uint16_t interrupting_keycode; - uint16_t timer; - bool interrupted; - bool pressed; - bool finished; +# include +# include + +typedef struct { + uint8_t count; + uint8_t oneshot_mods; + uint8_t weak_mods; + uint16_t keycode; + uint16_t interrupting_keycode; + uint16_t timer; + bool interrupted; + bool pressed; + bool finished; } qk_tap_dance_state_t; -#define TD(n) (QK_TAP_DANCE | ((n) & 0xFF)) +# define TD(n) (QK_TAP_DANCE | ((n)&0xFF)) -typedef void (*qk_tap_dance_user_fn_t) (qk_tap_dance_state_t *state, void *user_data); +typedef void (*qk_tap_dance_user_fn_t)(qk_tap_dance_state_t *state, void *user_data); -typedef struct -{ - struct { - qk_tap_dance_user_fn_t on_each_tap; - qk_tap_dance_user_fn_t on_dance_finished; - qk_tap_dance_user_fn_t on_reset; - } fn; - qk_tap_dance_state_t state; - uint16_t custom_tapping_term; - void *user_data; +typedef struct { + struct { + qk_tap_dance_user_fn_t on_each_tap; + qk_tap_dance_user_fn_t on_dance_finished; + qk_tap_dance_user_fn_t on_reset; + } fn; + qk_tap_dance_state_t state; + uint16_t custom_tapping_term; + void * user_data; } qk_tap_dance_action_t; -typedef struct -{ - uint16_t kc1; - uint16_t kc2; +typedef struct { + uint16_t kc1; + uint16_t kc2; } qk_tap_dance_pair_t; -typedef struct -{ - uint16_t kc; - uint8_t layer; +typedef struct { + uint16_t kc; + uint8_t layer; } qk_tap_dance_dual_role_t; -#define ACTION_TAP_DANCE_DOUBLE(kc1, kc2) { \ - .fn = { qk_tap_dance_pair_on_each_tap, qk_tap_dance_pair_finished, qk_tap_dance_pair_reset }, \ - .user_data = (void *)&((qk_tap_dance_pair_t) { kc1, kc2 }), \ - } +# define ACTION_TAP_DANCE_DOUBLE(kc1, kc2) \ + { .fn = {qk_tap_dance_pair_on_each_tap, qk_tap_dance_pair_finished, qk_tap_dance_pair_reset}, .user_data = (void *)&((qk_tap_dance_pair_t){kc1, kc2}), } -#define ACTION_TAP_DANCE_DUAL_ROLE(kc, layer) { \ - .fn = { qk_tap_dance_dual_role_on_each_tap, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset }, \ - .user_data = (void *)&((qk_tap_dance_dual_role_t) { kc, layer }), \ - } +# define ACTION_TAP_DANCE_DUAL_ROLE(kc, layer) \ + { .fn = {qk_tap_dance_dual_role_on_each_tap, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset}, .user_data = (void *)&((qk_tap_dance_dual_role_t){kc, layer}), } -#define ACTION_TAP_DANCE_FN(user_fn) { \ - .fn = { NULL, user_fn, NULL }, \ - .user_data = NULL, \ - } +# define ACTION_TAP_DANCE_FN(user_fn) \ + { .fn = {NULL, user_fn, NULL}, .user_data = NULL, } -#define ACTION_TAP_DANCE_FN_ADVANCED(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset) { \ - .fn = { user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset }, \ - .user_data = NULL, \ - } +# define ACTION_TAP_DANCE_FN_ADVANCED(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset) \ + { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset}, .user_data = NULL, } -#define ACTION_TAP_DANCE_FN_ADVANCED_TIME(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, tap_specific_tapping_term) { \ - .fn = { user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset }, \ - .user_data = NULL, \ - .custom_tapping_term = tap_specific_tapping_term, \ - } +# define ACTION_TAP_DANCE_FN_ADVANCED_TIME(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, tap_specific_tapping_term) \ + { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset}, .user_data = NULL, .custom_tapping_term = tap_specific_tapping_term, } extern qk_tap_dance_action_t tap_dance_actions[]; @@ -94,20 +79,20 @@ extern qk_tap_dance_action_t tap_dance_actions[]; void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record); bool process_tap_dance(uint16_t keycode, keyrecord_t *record); -void matrix_scan_tap_dance (void); -void reset_tap_dance (qk_tap_dance_state_t *state); +void matrix_scan_tap_dance(void); +void reset_tap_dance(qk_tap_dance_state_t *state); -void qk_tap_dance_pair_on_each_tap (qk_tap_dance_state_t *state, void *user_data); -void qk_tap_dance_pair_finished (qk_tap_dance_state_t *state, void *user_data); -void qk_tap_dance_pair_reset (qk_tap_dance_state_t *state, void *user_data); +void qk_tap_dance_pair_on_each_tap(qk_tap_dance_state_t *state, void *user_data); +void qk_tap_dance_pair_finished(qk_tap_dance_state_t *state, void *user_data); +void qk_tap_dance_pair_reset(qk_tap_dance_state_t *state, void *user_data); -void qk_tap_dance_dual_role_on_each_tap (qk_tap_dance_state_t *state, void *user_data); -void qk_tap_dance_dual_role_finished (qk_tap_dance_state_t *state, void *user_data); -void qk_tap_dance_dual_role_reset (qk_tap_dance_state_t *state, void *user_data); +void qk_tap_dance_dual_role_on_each_tap(qk_tap_dance_state_t *state, void *user_data); +void qk_tap_dance_dual_role_finished(qk_tap_dance_state_t *state, void *user_data); +void qk_tap_dance_dual_role_reset(qk_tap_dance_state_t *state, void *user_data); #else -#define TD(n) KC_NO +# define TD(n) KC_NO #endif -- cgit v1.2.3 From f069e9fc09859baf03d940b6db47e95c50a24936 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 21 Sep 2019 11:22:27 -0700 Subject: Generalize Tap Dance Layer functions (#6629) * made tapdance dual_role general * updated original dual_role functionality * added toggling layer example * Fix dual role and add alias * Update docs about new layer tap dances * Fix up based on feedback --- quantum/process_keycode/process_tap_dance.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'quantum/process_keycode/process_tap_dance.h') diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index b2d0cb8297..8d227dfd70 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -56,13 +56,19 @@ typedef struct { typedef struct { uint16_t kc; uint8_t layer; + void (*layer_function)(uint8_t); } qk_tap_dance_dual_role_t; # define ACTION_TAP_DANCE_DOUBLE(kc1, kc2) \ { .fn = {qk_tap_dance_pair_on_each_tap, qk_tap_dance_pair_finished, qk_tap_dance_pair_reset}, .user_data = (void *)&((qk_tap_dance_pair_t){kc1, kc2}), } # define ACTION_TAP_DANCE_DUAL_ROLE(kc, layer) \ - { .fn = {qk_tap_dance_dual_role_on_each_tap, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset}, .user_data = (void *)&((qk_tap_dance_dual_role_t){kc, layer}), } + { .fn = { qk_tap_dance_dual_role_on_each_tap, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset }, .user_data = (void *)&((qk_tap_dance_dual_role_t) { kc, layer, layer_move }), } + +# define ACTION_TAP_DANCE_TOGGLE_LAYER(kc, layer) \ + { .fn = { NULL, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset }, .user_data = (void *)&((qk_tap_dance_dual_role_t) { kc, layer, layer_invert }), } + +# define ACTION_TAP_DANCE_LAYER_MOVE(kc, layer) ACTION_TAP_DANCE_DUAL_ROLE(kc, layer) # define ACTION_TAP_DANCE_FN(user_fn) \ { .fn = {NULL, user_fn, NULL}, .user_data = NULL, } @@ -73,6 +79,8 @@ typedef struct { # define ACTION_TAP_DANCE_FN_ADVANCED_TIME(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, tap_specific_tapping_term) \ { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset}, .user_data = NULL, .custom_tapping_term = tap_specific_tapping_term, } + + extern qk_tap_dance_action_t tap_dance_actions[]; /* To be used internally */ -- cgit v1.2.3 From 335dd0271e344fec1a0f086b34da6f8ae0d8bd60 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 24 Oct 2019 12:08:29 -0700 Subject: Fix Tap Dance name for consistency and to match docs (#7136) --- quantum/process_keycode/process_tap_dance.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'quantum/process_keycode/process_tap_dance.h') diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index 8d227dfd70..8f3f3ff3c6 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -65,7 +65,7 @@ typedef struct { # define ACTION_TAP_DANCE_DUAL_ROLE(kc, layer) \ { .fn = { qk_tap_dance_dual_role_on_each_tap, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset }, .user_data = (void *)&((qk_tap_dance_dual_role_t) { kc, layer, layer_move }), } -# define ACTION_TAP_DANCE_TOGGLE_LAYER(kc, layer) \ +# define ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer) \ { .fn = { NULL, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset }, .user_data = (void *)&((qk_tap_dance_dual_role_t) { kc, layer, layer_invert }), } # define ACTION_TAP_DANCE_LAYER_MOVE(kc, layer) ACTION_TAP_DANCE_DUAL_ROLE(kc, layer) -- cgit v1.2.3 From a91c0c476507cb8c12840abb59bff34ab0de3c03 Mon Sep 17 00:00:00 2001 From: zvecr Date: Sun, 17 Nov 2019 14:02:26 +0000 Subject: Run clang-format manually to fix recently changed files --- quantum/process_keycode/process_tap_dance.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'quantum/process_keycode/process_tap_dance.h') diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index 8f3f3ff3c6..09ceef74d8 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -63,10 +63,10 @@ typedef struct { { .fn = {qk_tap_dance_pair_on_each_tap, qk_tap_dance_pair_finished, qk_tap_dance_pair_reset}, .user_data = (void *)&((qk_tap_dance_pair_t){kc1, kc2}), } # define ACTION_TAP_DANCE_DUAL_ROLE(kc, layer) \ - { .fn = { qk_tap_dance_dual_role_on_each_tap, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset }, .user_data = (void *)&((qk_tap_dance_dual_role_t) { kc, layer, layer_move }), } + { .fn = {qk_tap_dance_dual_role_on_each_tap, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset}, .user_data = (void *)&((qk_tap_dance_dual_role_t){kc, layer, layer_move}), } # define ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer) \ - { .fn = { NULL, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset }, .user_data = (void *)&((qk_tap_dance_dual_role_t) { kc, layer, layer_invert }), } + { .fn = {NULL, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset}, .user_data = (void *)&((qk_tap_dance_dual_role_t){kc, layer, layer_invert}), } # define ACTION_TAP_DANCE_LAYER_MOVE(kc, layer) ACTION_TAP_DANCE_DUAL_ROLE(kc, layer) @@ -79,8 +79,6 @@ typedef struct { # define ACTION_TAP_DANCE_FN_ADVANCED_TIME(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, tap_specific_tapping_term) \ { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset}, .user_data = NULL, .custom_tapping_term = tap_specific_tapping_term, } - - extern qk_tap_dance_action_t tap_dance_actions[]; /* To be used internally */ -- cgit v1.2.3