Explorar o código

Merge remote-tracking branch 'origin/develop' into xap

QMK Bot %!s(int64=3) %!d(string=hai) anos
pai
achega
7b49342a5e
Modificáronse 3 ficheiros con 33 adicións e 3 borrados
  1. 8 3
      docs/feature_swap_hands.md
  2. 12 0
      quantum/action.c
  3. 13 0
      quantum/action.h

+ 8 - 3
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. |

+ 12 - 0
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;
 }

+ 13 - 0
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