diff --git a/docs/feature_swap_hands.md b/docs/feature_swap_hands.md index 4d0d55409319..e9c1d4b7ba88 100644 --- a/docs/feature_swap_hands.md +++ b/docs/feature_swap_hands.md @@ -47,6 +47,11 @@ const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = { 1, 0 }; ### Functions :id=functions -| Function | Description | -|----------------------|---------------------------------------------| -| `is_swap_hands_on()` | Returns true if Swap-Hands is currently on. | +User callback functions to manipulate Swap-Hands: + +| Function | Description | +|-----------------------|---------------------------------------------| +| `swap_hands_on()` | Turns Swap-Hands on. | +| `swap_hands_off()` | Turns Swap-Hands off. | +| `swap_hands_toggle()` | Toggles Swap-Hands. | +| `is_swap_hands_on()` | Returns true if Swap-Hands is currently on. | diff --git a/quantum/action.c b/quantum/action.c index dadb88e9dfe5..9a6bbcca1162 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -165,6 +165,18 @@ void set_swap_hands_state(size_t index, uint8_t *swap_state, bool on) { } } +void swap_hands_on(void) { + swap_hands = true; +} + +void swap_hands_off(void) { + swap_hands = false; +} + +void swap_hands_toggle(void) { + swap_hands = !swap_hands; +} + bool is_swap_hands_on(void) { return swap_hands; } diff --git a/quantum/action.h b/quantum/action.h index 8ef6db6781ad..2a2c294c5a9e 100644 --- a/quantum/action.h +++ b/quantum/action.h @@ -84,6 +84,18 @@ typedef uint32_t swap_state_row_t; # error "MATRIX_COLS: invalid value" # endif +/** + * @brief Enable swap hands + */ +void swap_hands_on(void); +/** + * @brief Disable swap hands + */ +void swap_hands_off(void); +/** + * @brief Toggle swap hands enable state + */ +void swap_hands_toggle(void); /** * @brief Get the swap hands enable state * @@ -91,6 +103,7 @@ typedef uint32_t swap_state_row_t; * @return false */ bool is_swap_hands_on(void); + void process_hand_swap(keyevent_t *record); #endif