فهرست منبع

Enable a default task throttle for split pointing. (#15925)

Dasky 3 سال پیش
والد
کامیت
7b31fc54df
4فایلهای تغییر یافته به همراه6 افزوده شده و 7 حذف شده
  1. 1 1
      docs/feature_pointing_device.md
  2. 1 5
      quantum/pointing_device.c
  3. 3 0
      quantum/pointing_device.h
  4. 1 1
      quantum/split_common/transactions.c

+ 1 - 1
docs/feature_pointing_device.md

@@ -204,7 +204,7 @@ void           pointing_device_driver_set_cpi(uint16_t cpi) {}
 |`POINTING_DEVICE_MOTION_PIN`      | (Optional) If supported, will only read from sensor if pin is active. | _not defined_     |
 |`POINTING_DEVICE_TASK_THROTTLE_MS`      | (Optional) Limits the frequency that the sensor is polled for motion. | _not defined_     |
 
-!> When using `SPLIT_POINTING_ENABLE` the `POINTING_DEVICE_MOTION_PIN` functionality is not supported and would recommend `POINTING_DEVICE_TASK_THROTTLE_MS` be set to `1`. Increasing this value will increase transport performance at the cost of possible mouse responsiveness.
+!> When using `SPLIT_POINTING_ENABLE` the `POINTING_DEVICE_MOTION_PIN` functionality is not supported and `POINTING_DEVICE_TASK_THROTTLE_MS` will default to `1`. Increasing this value will increase transport performance at the cost of possible mouse responsiveness.
 
 
 ## Split Keyboard Configuration

+ 1 - 5
quantum/pointing_device.c

@@ -217,16 +217,12 @@ __attribute__((weak)) void pointing_device_task(void) {
     };
 #endif
 
-#if defined(POINTING_DEVICE_TASK_THROTTLE_MS)
+#if (POINTING_DEVICE_TASK_THROTTLE_MS > 0)
     static uint32_t last_exec = 0;
     if (timer_elapsed32(last_exec) < POINTING_DEVICE_TASK_THROTTLE_MS) {
         return;
     }
     last_exec = timer_read32();
-#else
-#    if defined(SPLIT_POINTING_ENABLE)
-#        pragma message("It's recommended you enable a throttle when sharing pointing devices.")
-#    endif
 #endif
 
     // Gather report info

+ 3 - 0
quantum/pointing_device.h

@@ -94,6 +94,9 @@ report_mouse_t pointing_device_adjust_by_defines(report_mouse_t mouse_report);
 #if defined(SPLIT_POINTING_ENABLE)
 void     pointing_device_set_shared_report(report_mouse_t report);
 uint16_t pointing_device_get_shared_cpi(void);
+#    if !defined(POINTING_DEVICE_TASK_THROTTLE_MS)
+#        define POINTING_DEVICE_TASK_THROTTLE_MS 1
+#    endif
 #    if defined(POINTING_DEVICE_COMBINED)
 void           pointing_device_set_cpi_on_side(bool left, uint16_t cpi);
 report_mouse_t pointing_device_combine_reports(report_mouse_t left_report, report_mouse_t right_report);

+ 1 - 1
quantum/split_common/transactions.c

@@ -624,7 +624,7 @@ static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t s
 #    endif
     report_mouse_t temp_report;
     uint16_t       temp_cpi;
-#    ifdef POINTING_DEVICE_TASK_THROTTLE_MS
+#    if (POINTING_DEVICE_TASK_THROTTLE_MS > 0)
     static uint32_t last_exec = 0;
     if (timer_elapsed32(last_exec) < POINTING_DEVICE_TASK_THROTTLE_MS) {
         return;