aboutsummaryrefslogtreecommitdiff
path: root/quantum/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/main.c')
-rw-r--r--quantum/main.c36
1 files changed, 34 insertions, 2 deletions
diff --git a/quantum/main.c b/quantum/main.c
index 2cbcd73d8..6ed6b9574 100644
--- a/quantum/main.c
+++ b/quantum/main.c
@@ -19,8 +19,33 @@
19void platform_setup(void); 19void platform_setup(void);
20 20
21void protocol_setup(void); 21void protocol_setup(void);
22void protocol_init(void); 22void protocol_pre_init(void);
23void protocol_task(void); 23void protocol_post_init(void);
24void protocol_pre_task(void);
25void protocol_post_task(void);
26
27// Bodge as refactoring this area sucks....
28void protocol_init(void) __attribute__((weak));
29void protocol_init(void) {
30 protocol_pre_init();
31
32 keyboard_init();
33
34 protocol_post_init();
35}
36
37void protocol_task(void) __attribute__((weak));
38void protocol_task(void) {
39 protocol_pre_task();
40
41 keyboard_task();
42
43 protocol_post_task();
44}
45
46#ifdef DEFERRED_EXEC_ENABLE
47void deferred_exec_task(void);
48#endif // DEFERRED_EXEC_ENABLE
24 49
25/** \brief Main 50/** \brief Main
26 * 51 *
@@ -30,12 +55,19 @@ int main(void) __attribute__((weak));
30int main(void) { 55int main(void) {
31 platform_setup(); 56 platform_setup();
32 protocol_setup(); 57 protocol_setup();
58 keyboard_setup();
33 59
34 protocol_init(); 60 protocol_init();
35 61
36 /* Main loop */ 62 /* Main loop */
37 while (true) { 63 while (true) {
38 protocol_task(); 64 protocol_task();
65
66#ifdef DEFERRED_EXEC_ENABLE
67 // Run deferred executions
68 deferred_exec_task();
69#endif // DEFERRED_EXEC_ENABLE
70
39 housekeeping_task(); 71 housekeeping_task();
40 } 72 }
41} 73}