X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tmk_core%2Fcommon%2Fkeyboard.c;h=85d25254808946a0a627b35f8e2470278daf1a7f;hb=7f65844f75c30f17804d57d34c0f0ce971226b59;hp=371d93f3e59b755130b5afdb7fc8428e879d8bf9;hpb=631b8999a737ec73610f8b569b1f775cadf08172;p=qmk_firmware.git
diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c
index 371d93f3e..85d252548 100644
--- a/tmk_core/common/keyboard.c
+++ b/tmk_core/common/keyboard.c
@@ -14,6 +14,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
+
#include
#include "keyboard.h"
#include "matrix.h"
@@ -50,43 +51,166 @@ along with this program. If not, see .
#ifdef RGBLIGHT_ENABLE
# include "rgblight.h"
#endif
+#ifdef STENO_ENABLE
+# include "process_steno.h"
+#endif
+#ifdef FAUXCLICKY_ENABLE
+# include "fauxclicky.h"
+#endif
#ifdef SERIAL_LINK_ENABLE
# include "serial_link/system/serial_link.h"
#endif
#ifdef VISUALIZER_ENABLE
# include "visualizer/visualizer.h"
#endif
+#ifdef POINTING_DEVICE_ENABLE
+# include "pointing_device.h"
+#endif
+#ifdef MIDI_ENABLE
+# include "process_midi.h"
+#endif
+#ifdef HD44780_ENABLE
+# include "hd44780.h"
+#endif
+#ifdef QWIIC_ENABLE
+# include "qwiic.h"
+#endif
+#ifdef OLED_DRIVER_ENABLE
+ #include "oled_driver.h"
+#endif
+#ifdef VELOCIKEY_ENABLE
+ #include "velocikey.h"
+#endif
+#ifdef MATRIX_HAS_GHOST
+extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
+static matrix_row_t get_real_keys(uint8_t row, matrix_row_t rowdata){
+ matrix_row_t out = 0;
+ for (uint8_t col = 0; col < MATRIX_COLS; col++) {
+ //read each key in the row data and check if the keymap defines it as a real key
+ if (pgm_read_byte(&keymaps[0][row][col]) && (rowdata & (1<= QMK_KEYS_PER_SCAN)
+#endif
+ // process a key per task call
+ goto MATRIX_LOOP_END;
+ }
}
}
}
}
// call with pseudo tick event when no real key event.
+#ifdef QMK_KEYS_PER_SCAN
+ // we can get here with some keys processed now.
+ if (!keys_processed)
+#endif
action_exec(TICK);
MATRIX_LOOP_END:
+#ifdef QWIIC_ENABLE
+ qwiic_task();
+#endif
+
+#ifdef OLED_DRIVER_ENABLE
+ oled_task();
+#ifndef OLED_DISABLE_TIMEOUT
+ // Wake up oled if user is using those fabulous keys!
+ if (ret)
+ oled_on();
+#endif
+#endif
+
#ifdef MOUSEKEY_ENABLE
// mousekey repeat & acceleration
mousekey_task();
@@ -188,7 +347,19 @@ MATRIX_LOOP_END:
#endif
#ifdef VISUALIZER_ENABLE
- visualizer_update(default_layer_state, layer_state, host_keyboard_leds());
+ visualizer_update(default_layer_state, layer_state, visualizer_get_mods(), host_keyboard_leds());
+#endif
+
+#ifdef POINTING_DEVICE_ENABLE
+ pointing_device_task();
+#endif
+
+#ifdef MIDI_ENABLE
+ midi_task();
+#endif
+
+#ifdef VELOCIKEY_ENABLE
+ if (velocikey_enabled()) { velocikey_decelerate(); }
#endif
// update LED
@@ -198,6 +369,10 @@ MATRIX_LOOP_END:
}
}
+/** \brief keyboard set leds
+ *
+ * FIXME: needs doc
+ */
void keyboard_set_leds(uint8_t leds)
{
if (debug_keyboard) { debug("keyboard_set_led: "); debug_hex8(leds); debug("\n"); }