Bläddra i källkod

Fixup housekeeping from being invoked twice per loop. (#12933)

Nick Brassel 4 år sedan
förälder
incheckning
58142f0726

+ 9 - 3
tmk_core/common/keyboard.c

@@ -280,6 +280,15 @@ __attribute__((weak)) void housekeeping_task_kb(void) {}
  */
 __attribute__((weak)) void housekeeping_task_user(void) {}
 
+/** \brief housekeeping_task
+ *
+ * Invokes hooks for executing code after QMK is done after each loop iteration.
+ */
+void housekeeping_task(void) {
+    housekeeping_task_kb();
+    housekeeping_task_user();
+}
+
 /** \brief keyboard_init
  *
  * FIXME: needs doc
@@ -374,9 +383,6 @@ void keyboard_task(void) {
     bool encoders_changed = false;
 #endif
 
-    housekeeping_task_kb();
-    housekeeping_task_user();
-
     uint8_t matrix_changed = matrix_scan();
     if (matrix_changed) last_matrix_activity_trigger();
 

+ 3 - 2
tmk_core/common/keyboard.h

@@ -70,8 +70,9 @@ void keyboard_pre_init_user(void);
 void keyboard_post_init_kb(void);
 void keyboard_post_init_user(void);
 
-void housekeeping_task_kb(void);
-void housekeeping_task_user(void);
+void housekeeping_task(void); // To be executed by the main loop in each backend TMK protocol
+void housekeeping_task_kb(void); // To be overridden by keyboard-level code
+void housekeeping_task_user(void); // To be overridden by user/keymap-level code
 
 uint32_t last_input_activity_time(void);     // Timestamp of the last matrix or encoder activity
 uint32_t last_input_activity_elapsed(void);  // Number of milliseconds since the last matrix or encoder activity

+ 3 - 0
tmk_core/protocol/arm_atsam/main_arm_atsam.c

@@ -305,6 +305,9 @@ int main(void) {
             // dprintf("5v=%u 5vu=%u dlow=%u dhi=%u gca=%u gcd=%u\r\n", v_5v, v_5v_avg, v_5v_avg - V5_LOW, v_5v_avg - V5_HIGH, gcr_actual, gcr_desired);
         }
 #endif  // CONSOLE_ENABLE
+
+        // Run housekeeping
+        housekeeping_task();
     }
 
     return 1;

+ 1 - 2
tmk_core/protocol/chibios/main.c

@@ -257,7 +257,6 @@ int main(void) {
 #endif
 
         // Run housekeeping
-        housekeeping_task_kb();
-        housekeeping_task_user();
+        housekeeping_task();
     }
 }

+ 1 - 2
tmk_core/protocol/lufa/lufa.c

@@ -1107,8 +1107,7 @@ int main(void) {
 #endif
 
         // Run housekeeping
-        housekeeping_task_kb();
-        housekeeping_task_user();
+        housekeeping_task();
     }
 }
 

+ 1 - 2
tmk_core/protocol/vusb/main.c

@@ -173,8 +173,7 @@ int main(void) {
 #endif
 
             // Run housekeeping
-            housekeeping_task_kb();
-            housekeeping_task_user();
+            housekeeping_task();
         }
     }
 }