M quantum/keyboard.c => quantum/keyboard.c +6 -0
@@ 335,6 335,12 @@ void keyboard_init(void) {
#ifdef DIP_SWITCH_ENABLE
dip_switch_init();
#endif
+#ifdef SLEEP_LED_ENABLE
+ sleep_led_init();
+#endif
+#ifdef VIRTSER_ENABLE
+ virtser_init();
+#endif
#if defined(DEBUG_MATRIX_SCAN_RATE) && defined(CONSOLE_ENABLE)
debug_enable = true;
M quantum/main.c => quantum/main.c +14 -1
@@ 20,7 20,18 @@ void platform_setup(void);
void protocol_setup(void);
void protocol_init(void);
-void protocol_task(void);
+void protocol_pre_task(void);
+void protocol_post_task(void);
+
+// Bodge as refactoring vusb sucks....
+void protocol_task(void) __attribute__((weak));
+void protocol_task(void) {
+ protocol_pre_task();
+
+ keyboard_task();
+
+ protocol_post_task();
+}
/** \brief Main
*
@@ 30,8 41,10 @@ int main(void) __attribute__((weak));
int main(void) {
platform_setup();
protocol_setup();
+ keyboard_setup();
protocol_init();
+ keyboard_init();
/* Main loop */
while (true) {
M tmk_core/protocol/chibios/chibios.c => tmk_core/protocol/chibios/chibios.c +3 -12
@@ 138,8 138,6 @@ void protocol_setup(void) {
// TESTING
// chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
-
- keyboard_setup();
}
void protocol_init(void) {
@@ 176,18 174,10 @@ void protocol_init(void) {
print("USB configured.\n");
- /* init TMK modules */
- keyboard_init();
host_set_driver(driver);
-
-#ifdef SLEEP_LED_ENABLE
- sleep_led_init();
-#endif
-
- print("Keyboard start.\n");
}
-void protocol_task(void) {
+void protocol_pre_task(void) {
usb_event_queue_task();
#if !defined(NO_USB_STARTUP_CHECK)
@@ 210,8 200,9 @@ void protocol_task(void) {
# endif /* MOUSEKEY_ENABLE */
}
#endif
+}
- keyboard_task();
+void protocol_post_task(void) {
#ifdef CONSOLE_ENABLE
console_task();
#endif
M tmk_core/protocol/lufa/lufa.c => tmk_core/protocol/lufa/lufa.c +4 -15
@@ 1070,7 1070,6 @@ void protocol_setup(void) {
setup_mcu();
usb_device_state_init();
- keyboard_setup();
}
void protocol_init(void) {
@@ 1095,21 1094,11 @@ void protocol_init(void) {
#else
USB_USBTask();
#endif
- /* init modules */
- keyboard_init();
- host_set_driver(&lufa_driver);
-#ifdef SLEEP_LED_ENABLE
- sleep_led_init();
-#endif
-#ifdef VIRTSER_ENABLE
- virtser_init();
-#endif
-
- print("Keyboard start.\n");
+ host_set_driver(&lufa_driver);
}
-void protocol_task(void) {
+void protocol_pre_task(void) {
#if !defined(NO_USB_STARTUP_CHECK)
if (USB_DeviceState == DEVICE_STATE_Suspended) {
print("[s]");
@@ 1133,9 1122,9 @@ void protocol_task(void) {
suspend_wakeup_init();
}
#endif
+}
- keyboard_task();
-
+void protocol_post_task(void) {
#ifdef MIDI_ENABLE
MIDI_Device_USBTask(&USB_MIDI_Interface);
#endif
M tmk_core/protocol/vusb/protocol.c => tmk_core/protocol/vusb/protocol.c +0 -7
@@ 111,22 111,15 @@ void protocol_setup(void) {
// clock prescaler
clock_prescale_set(clock_div_1);
#endif
- keyboard_setup();
}
void protocol_init(void) {
setup_usb();
sei();
- keyboard_init();
-
host_set_driver(vusb_driver());
wait_ms(50);
-
-#ifdef SLEEP_LED_ENABLE
- sleep_led_init();
-#endif
}
void protocol_task(void) {